php - 如何使用 php 下载保存在 mysql 数据库中的 pdf 作为 MEDIUMBLOB 数据?

标签 php mysql

我在 mysql 数据库中将一个 pdf 文件保存为 MEDIUMBLOB 文件。我使用以下代码下载它。下载的文件与原始文件的大小和文件类型相同,但无法正常打开。可能是什么问题以及如何解决?

$emp_no=55;
$DOB="2014-09-03";

$query="SELECT file_name, file_type, file_size, file_data FROM document WHERE emp_no=$emp_no AND DOB='$DOB'";
$retval=mysqli_query($non,$query);

$row=mysqli_fetch_array($retval,MYSQL_ASSOC);
$file_name=$row['file_name'];
$file_type=$row['file_type'];
$file_size=$row['file_size'];
$file_data=$row['file_data'];

header("Content-length: $file_size");
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=$file_name");
echo $file_data;

最佳答案

在记事本中打开 downloaded.pdf,您会看到文件顶部有 PHP 错误通知,这些会损坏所有下载的文件。

一些解决方案:

  • 修复它们 ;-)
  • 通过 error_reporting(E_ERROR); 在您的 PHP 代码的第一行关闭 E_NOTICE 错误报告
  • 构建您自己的 custom error reporting mechanics并通过 ini_set('display_errors', 0); 关闭向浏览器打印错误,这样它们就不会弄乱下载的文件

你可以修复这些,或者添加一个

关于php - 如何使用 php 下载保存在 mysql 数据库中的 pdf 作为 MEDIUMBLOB 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27969743/

相关文章:

php - yii2:显示日期的格式

Php 仅在 ssl 上注释掉

mysql - 如何根据一个 MySQL 查询中的其他两列为每一行设置一个数字?

mysql - 我应该使用 Python 3 的哪个标准模块来与 MySQL 对话?

c# - 根据数据库中存在的内容控制可见

PHP 无法执行 xcodebuild,如何解决?

php - 使用 PHP 控制 wget

php - 通过用户身份验证将变量从数据库加载到 JavaScript

java - JDBC 连接错误 mysql 访问被拒绝,用户 <user>@<host>

php - PDO语法错误