Laravel / Symfony: файл загрузки ответов не возвращает правильный размер - PullRequest
0 голосов
/ 06 мая 2019

Я использую Nginx + PHP-FPM и сервер Amazon Linux 2.

У меня есть файл myplugin.zip размером 34 КБ

[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

Файл прекрасно распаковывается, используя "unzip "on lunix.

Однако, когда я пытаюсь отправить файл как ответ, используя двоичный класс Symfony:

$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;

Я также пытался

Файл возвращается вмой MacOS через Chrome имеет неправильный размер и поврежден

-rw-r--r--@ 1 Dev-Mac  staff  59940 May  6 18:21 myplugin.zip

Обратите внимание, что я также попробовал следующую загрузку Laravel (), и возвращается тот же размер (59940 байт): https://laravel.com/docs/5.8/responses#file-downloads

1 Ответ

0 голосов
/ 07 мая 2019

Вы пытались просто не указывать размер файла? Всего return new BinaryFileResponse($path);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...