2015-04-27 2 views
3

При использовании Response::download для загрузки файлов я заметил, что изображения и другие двоичные файлы были переданы неправильно.Laravel 5 скачиваний файлов недействителен

Изменение заголовка Content-Type ничего не меняет, равно как и явно запрещает кеш или форсирует длину содержимого.

Что может быть причиной этой проблемы?

+0

Можете ли вы объяснить, что вы подразумеваете под "переносом неправильно"? Например, были ли переданные файлы пустыми? Были ли искажены или искажены изображения? Изменена ли длина файла? – Kryten

+0

К сожалению, да - для большего контекста изображения и другие двоичные файлы были повреждены из-за переноса дополнительных символов. Когда я получу некоторое время, я покажу шестнадцатеричную разницу между загруженным файлом (правильно) и загруженным файлом (поврежденным) – infomaniac

ответ

12

Решение этой проблемы можно найти здесь:

http://simpledeveloper.com/how-to-fix-laravel-response-image-download-in-laravel/

Причиной этого вопроса было связано с Laravel/Symfony не надлежащей очистки буфера вывода для какой-либо причине, поэтому решение заключается в следующем:

$response = Response::download($path, ...); 
ob_end_clean(); 

return $response; 
+0

Отлично, решите проблему! – ken

Смежные вопросы