Всем привет. Задался вопросом, как правильно отдавать пользователю на загрузку большой файл? Использую Laravel, при стандартном подходе response()->download()
весь файл грузится в память. Как быть с большими файлами? Какой принцип их загрузки? Рад любому пояснению.
Вариант 1 - сделайте отдачу файлов в обход laravel (простой cdn-сайт создайте, который будет отдавать ваши файлы)
Сделайте вместе Response::download()
свой метод:
function sendFile($path, $name = null, array $headers = array())
{
if (is_null($name)) $name = basename($path);
$headers = array_merge(array(
'Content-Description' => 'File Transfer',
'Content-Type' => File::mime(File::extension($path)),
'Content-Transfer-Encoding' => 'binary',
'Expires' => 0,
'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
'Pragma' => 'public',
'Content-Length' => File::size($path),
), $headers);
$response = new Response('', 200, $headers);
$response->header('Content-Disposition', $response->disposition($name));
if (Config::get('session.driver') !== '')
{
Session::save();
}
ob_end_clean();
$response->send_headers();
if ($fp = fread($path, 'rb')) {
while(!feof($fp) and (connection_status()==0)) {
print(fread($fp, 8192));
flush();
}
}
Event::fire('laravel.done', array($response));
$response->foundation->finish();
exit;
}
Взято из первой ссылки по результату поиска в Гугл
Или вот это почитайте
А если не хватит - поищите тут
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
У меня есть 3 сущности: Customer, User и VerificationEmail
У меня есть простой север на Spring`е, что должен обрабатывать GET, PUT и POST запросы, и работать с БД соответственноС GET никаких проблем нет, и приложение...
При генерации csv файла и последующем его открытии в excel получаю ошибкуРешить ее удалось добавив в первую ячейку первым символом пробел
Смотрю картинку про хэш‑таблицу и вижу такое слово: bucketsПосоветуйте что это такое и для чего?