尝试使用laravel下载文件。不想把文件放在公共文件夹和bom和utf8字符集是必要的,因为我需要写日语字符。
代码如下
header('Content-Encoding: UTF-8');
header('Content-type: text/csv');
header('Content-Disposition: attachment; filename=Customers_Export.csv');
echo "'xEF'xBB'xBF"; // UTF-8 BOM
$string = '21, 133, 3232';
echo $string;
exit();
但我们的输出如下,我们得到了两个额外的空行,日语字符是不正确的
**Output in csv**
空白行
空白行
ȕ?21 133 3232
做这件事的正确方法是什么?
Sooo这里出现了一个大惊喜。。
我已经找出了空行的原因。。在路由文件中,php标记之前的那一行是空的!!!
令人惊讶的是,我删除了那里的空行,在我的csv文件中也没有空行。。。
您可以使用response()->download()
从任何位置下载文件。
我是这样做的:
$headers = array
(
'Content-Encoding: UTF-8',
'Content-Type' => 'text/csv',
);
return response()->download($path, $file_name, $headers);
例如,我的应用程序位于/var/www/appname
,我的文件位于/storage/appname
,因此这些文件不是公共的。