Мне нужна помощь с этим сценарием. Я пытаюсь получить этот двоичный файл, хранящийся в БД сервера SQL. Основная проблема заключается в том, что каждый раз, когда я пытаюсь показать его в своем браузере или загрузить, файл поврежден. Вот мой код:
$binary = $row['PDF_FILE_STORED'];
file_put_contents('my.pdf', $binary);
header('Content-type: application/pdf');
header("Content-Transfer-Encoding: Binary");
header("Content-Length: ".filesize($binary));
header("Content-Disposition: attachment;filename=my.pdf");
ob_clean();
flush();
echo $binary;
Есть ли проблема с аспектом кодирования? Я только что получил это предупреждение в консоли моего браузера: «Ресурс интерпретируется как Документ, но передается с приложением MIME типа / pdf». Любые советы?
Чтобы просто скачать файл PDF, вам не нужно сохранять его локально на сервере. Вам не нужно отправлять контентную длину, так как это должно быть сделано автоматически, и я бы также пропустил кодировку передачи контента.
Если еще не было вывода, вы также можете пропустить обработку выходного буфера.
Попробуй это:
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename=my.pdf');
echo $row['PDF_FILE_STORED'];
Других решений пока нет …