Я пытаюсь передать большой загружаемый файл (до 4 ГБ) с помощью объекта Symfony: StreamedResponse
Я могу загрузить один файлс кодом ниже.
Моя проблема во время этой загрузки, мой сервер завис до конца.
Итак, что я сделал не так!
Проблема с моим PHPкод или мой NGINX конфиг?
Спасибо за вашу помощь
/**
* @Route("/test/dl", name="test-download-start")
* @param string $webDirectory
* @return StreamedResponse
*/
public function testDl(string $webDirectory)
{
$path = $webDirectory . '\\public\\Softwares\\InitMedia\\5d9b516a8140b.zip';
$response = new StreamedResponse();
$response->setCallback(function () use ($path) {
$handle = fopen($path, 'rb');
while (!feof($handle)) {
$buffer = fread($handle, 1024);
echo $buffer;
flush();
}
fclose($handle);
});
$response->headers->set('Content-Type', 'application/zip');
$response->headers->set('Content-Disposition', 'attachment;filename="test.zip"');
return $response;
}
NB : я пытался с BinaryFileResponse это же
/**
* @Route("/test/dl2", name="test-download-start2")
* @param string $webDirectory
* @return BinaryFileResponse
*/
public function testDl2(string $webDirectory)
{
$path = $webDirectory . '\\public\\Softwares\\InitMedia\\5d9b516a8140b.zip';
$response = new BinaryFileResponse($path);
$response->headers->set('Content-Disposition', 'attachment;filename="test.zip"');
return $response;
}