Это скорее концептуальный вопрос, но мне интересно, возможно ли передавать поток mPDF напрямую пользователю при загрузке (например, без сохранения во временной папке на сервере или загрузки в браузер пользователя).
Я успешно использую аналогичный метод для загрузки zip-файла фотографий S3 с использованием ZipStream и AWS PHP S3 Stream Wrapper , который работает очень хорошо, поэтому яхотел бы использовать аналогичный метод для генерации моего PDF.
Я использую библиотеку mPDF для генерации отчетов с изображениями S3 на Heroku. Документация mPDF показывает четыре варианта вывода, включая inline
и download
;inline
загружает его прямо в браузер пользователя, а download
вызывает запрос на загрузку (нужное поведение).
Я включил S3 Stream Wrapper и внедрил изображения в PDF в формате mPDF Image ()документация примерно так:
$mpdf->imageVars['myvariable'] = '';
while (!feof($streamRead)) {
// Read 1,024 bytes from the stream
$mpdf->imageVars['myvariable'] .= fread($streamRead, 1024);
}
fclose($streamRead);
$imageHTML = '<img src="var:myvariable" class="report-img" />';
$mpdf->WriteHTML($imageHTML);
Я также добавил header('X-Accel-Buffering: no');
, который был необходим для работы ZipStream в среде Heroku, но сценарий всегда отключается, если их большепару изображений.
Можно ли сразу подсказать загрузку и просто передать поток данных непосредственно пользователю?Я надеюсь, что этот метод может быть использован не только для zip-загрузок, но еще не повезло с этим конкретным приложением.