php - XAMPP,PHP : echo adds two spaces to blob read from database

标签 php mysql blob mime

我从 mysql 数据库读取 blob(word 2010 文档)并将其存储在 $data 变量中。当我像这样将数据直接存储在 PHP 中时:

file_put_contents('c:\\temp\\dump.docx', $data);

我可以在 Word 中打开 dump.docx(大小与原始文件匹配)。如果我尝试像这样发送 $data:

ob_start();
header('Content-disposition: attachment; filename=' . $name);
header('Content-type: ' . $type);
ob_clean();
echo $data;
ob_end_flush();
exit;

存储的文件长了两个字节。前面有两个空格:

Downloaded word doc viewed in hex editor with two extra spaces in front

为了检查我是否以某种方式不输出这些空格,我在回显之前调用了 ob_get_contents() 并将内容转储到文件中。文件有零字节。 所以看起来 echo 正在生成这两个字节。

最佳答案

这是对我有帮助的帖子: https://drupal.stackexchange.com/questions/163628/extra-space-at-beginning-of-downloaded-image/163644

ob_start 更早被调用了。在发送内容之前,我只需要调用 ob_clean()。

关于php - XAMPP,PHP : echo adds two spaces to blob read from database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56864421/

相关文章:

php - 用js连接db并隐藏元素

php - 十月 CMS 目录豁免

mysql - 如何设计可插入和可重新排序的索引字段

ruby-on-rails-3 - Rails 3渲染二进制内容

c# - azure 函数 - Blob 输入绑定(bind)

php - 复选框的值无法正常工作

php - 使用别名从 View 更新 MySQL 表

mysql - InnoDb 有时工作但其他时间不工作

mysql - 我可以选择每一行并限制具有不同值的行吗?

php - 将 blob 图像(存储在数据库中)下载到我的计算机