我使用Nginx + PHP-FPM和Amazon Linux 2服务器。
我有一个名为myplugin.zip的文件,大小为34KB
[root@ip-172-33-4-164 laravel-app]# ls -la /tmp/R2birI4LuZ/myplugin.zip
-rw-r--r-- 1 nginx nginx 35889 May 6 16:21 /tmp/R2birI4LuZ/myplugin.zip
使用lunix上的“ unzip”文件可以完美解压缩。
但是,当我尝试使用Symfony的Binary类作为响应发送文件时:
$path = /tmp/R2birI4LuZ/myplugin.zip;
$headers = [
'Content-Type' => 'application/zip',
'Content-Transfer-Encoding' => 'Binary',
'Content-Disposition' => 'attachment; filename='.basename($path),
"Content-Length: ".filesize($path)
];
$response = new \Symfony\Component\HttpFoundation\BinaryFileResponse($path, 200 , $headers);
return $response;
我也尝试过
通过Chrome返回到我的MacOS的文件大小错误并且已损坏
-rw-r--r--@ 1 Dev-Mac staff 59940 May 6 18:21 myplugin.zip
请注意,我还尝试了以下Laravel download()并返回了相同的大小(59940字节): https://laravel.com/docs/5.8/responses#file-downloads
答案 0 :(得分:0)
您是否尝试过仅保留文件大小?
只是return new BinaryFileResponse($path);