我需要有关此脚本的帮助。我正在尝试将此二进制文件存储在sql server DB中。主要的问题是,每次尝试在浏览器中显示或下载该文件时,该文件都已损坏。这是我的代码:
$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;
编码方面是否存在问题?我刚刚在浏览器的控制台中收到此警告:“资源被解释为Document,但以MIME类型application / pdf传输”。有什么建议吗?
答案 0 :(得分:1)
仅下载pdf文件,无需将其本地保存在服务器上。您不需要发送内容长度,因为它应该自动完成,我也将跳过内容传输编码。
如果还没有输出,则还可以跳过处理输出缓冲区的操作。
尝试一下:
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename=my.pdf');
echo $row['PDF_FILE_STORED'];