Laravel:无法下载生成的文件

Posted

技术标签:

【中文标题】Laravel:无法下载生成的文件【英文标题】:Laravel: Can't download the generated file 【发布时间】:2021-08-05 07:51:45 【问题描述】:

我有一个生成 excel (.csv) 文件的函数。一切正常,除了下载。 所以我的想法是生成csv文件后在浏览器中自动下载文件。生成文件后,我们将其存储在公用文件夹中。 因此,当我调用我的函数时,该函数正在打开 url:http://127.0.0.1:8000/project/tools/export/exportData 并显示文件而不是下载它。所以为此我需要你的帮助!先感谢您。 我的代码:

public function exportData() 
 
$size=sizeof($arr);
   for($i=0; $i<$size; $i++)
   
    fputcsv($fh,$arr[$i]);
   
   fclose($fh);
   $file="Export.csv";
   $headers = array(

    'Content-Type: text/csv',

  );
   return response()->download($file, 'Export.csv', $headers);
  

【问题讨论】:

查看***.com/a/20415796/2324206 @Haridarshan 谢谢,但我试过了,但它显示在浏览器中而不是下载它.. 【参考方案1】:

您可以将content-disposition 添加到您的标题中以指示如何处理文件:

$headers = [
    'Content-type'        => 'text/csv',
    'Content-Disposition' => 'attachment; filename="filename.csv"',
];

要在浏览器中显示文件而不是下载文件,您可以将attachment 换成inline

【讨论】:

您好@marks 感谢您的回复!我试过你的代码,但它仍然显示文件..

以上是关于Laravel:无法下载生成的文件的主要内容,如果未能解决你的问题,请参考以下文章

laravel php工匠错误

强制文件 (PDF) 在 Laravel 4 中下载

用于生成的 Laravel 护照令牌

带有laravel的DOMPDF - 无法在html文件中加载图像

Laravel-admin安装

laravel mix --production 不能正确生成tailwind css文件