У меня есть веб-приложение PHP Yii2, которое запускает сценарий командной строки, используя passthru()
, passthru()
результат должен быть передан в загруженный файл, чтобы пользователь мог загрузить вывод passthru()
,
Пример:
Если я выполню следующую командную строку:
$ /bin/cat /PATH/pic.jpg > output.jpg
…Я получаю файл output.jpg
, который идентичен pic.jpg
(та же контрольная сумма md5)
Но мне нужно выполнить этот механизм в веб-приложении:
Если я делаю то же самое, используя passthru()
чтобы отправить файл в браузер пользователей:
header("Cache-Control: private");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=download.jpg");
passthru ('/bin/cat /PATH/pic.jpg');
….чем я получаю download.jpg
что не так, как pic.jpg
Я этот пример-случай download.jpg
на 1126 байт меньше (размер изображения составляет около 13 МБ), и изображение не может быть открыто в некоторых программах просмотра изображений.
Задача ещё не решена.
Других решений пока нет …