BinaryFileResponse с php-ресурсом от Flysystem

1

Мне нужно использовать BinaryFileResponse для правильной обработки видео с заголовками Length и co. Также я хочу, чтобы пользователь разрешил настраивать другие хранилища (S3, Dropbox). Метод flysystem readStream вернет resource но BinaryFileResponse нуждается в string пути. Каков наилучший способ справиться с этим? Сначала загрузите весь файл на сервер до ответа?

Теги:
flysystem

1 ответ

2

Для этого вы можете использовать класс StreamedResponse. Вы должны будете провести некоторую передачу данных самостоятельно, но это довольно прямолинейно. Например, этот код использовался для включения "принудительной загрузки" для PDF файлов.

return new StreamedResponse(function () use ($stream) {
    fpassthru($stream);
    exit();
}, 200, [
    'Content-Transfer-Encoding', 'binary',
    'Content-Type' => 'application/pdf',
    'Content-Disposition' => sprintf('attachment; filename="%s.pdf"', $filename),
    'Content-Length' => fstat($stream)['size'],
]);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню