Slim php csrf失败

时间:2019-03-25 10:42:47

标签: php file csv slim-3

我有一个控制器动作,该动作使用League / csv包输出CSV文件。 当我发布表单时,可以下载文件,但是如果再次发布发布请求,我会得到csrf令牌失败,这是正确的,因为csrf代码在每次请求后都会过期。在Slim框架PHP中下载文件后重定向页面的最佳方法是什么

     $csv = \League\Csv\Writer::createFromFileObject(new \SplTempFileObject());

    Data::where('user_id','=',$user_id)->get()->each(function($dat) use($csv) {
        $data = $dat->toArray();
        $data['link'] = $dat->getLink();
        $csv->insertOne($data);
    });
     $csv->output('data.csv');

1 个答案:

答案 0 :(得分:0)

问题已解决。我提出了ajax请求,该请求返回了csrf令牌和csv文件内容。 我使用下面的代码使用javascript下载文件

var uri = 'data:text/csv;charset=UTF-8,' + encodeURIComponent(csvdata);
                window.open(uri, 'data.csv');