当我在Safari / Firefox中使用/test-csv
路径时,我可以下载单行csv文件。但是当我在Chrome中试用它时,它会在控制台的“网络”标签中显示“无法加载响应数据”。
*edit*
重要新细节:它可以在Windows计算机上的Chrome中运行,但不适用于我的Macbook Pro
*edit*
我尝试了Content-Type
和Content-Disposition
标题的多种变体无效。
当我遗漏所有标题时,我只在浏览器中输入一个字符串:"id,name,email"
(无需下载)。
Chrome是否需要某种特殊标题让我强行下载此流数据?
use Symfony\Component\HttpFoundation\StreamedResponse;
Route::get('test-csv', function(){
$response = new StreamedResponse(function(){
// Open output stream
$handle = fopen('php://output', 'w');
fputcsv($handle, [
'id',
'name',
'email'
]);
fclose($handle);
}, 200, [
'Content-Type' => 'text/csv',
'Content-Disposition' => 'attachment;filename=export.csv;',
]);
return $response;
});
答案 0 :(得分:0)
@ Bogdan的评论让我意识到问题必定存在于我在Chrome中的安装/设置中。
我关闭了扩展程序并卸载并重新安装了chrome。它现在按预期工作。
如果@bogdan想要将他的评论/建议作为答案发布,我会将其标记为已接受的答案。