首页 > 解决方案 > 从 PDF 中获取二进制数据(使用 JS),将其保存在 db 中并在 PHP 中取回

问题描述

我的二进制数据有问题,无法将其转换为 pdf。

我在 JS 中使用 readAsBinaryString() 来获取 pdf 文件的二进制数据。我将它存储在我的数据库中(列类型 blob)。然后我尝试使用以下方法在 php 中重新创建 pdf:

header('Content-Description: File Transfer');
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename=' . $_POST["fileName"]);
header('Content-Transfer-Encoding: binary');

echo html_entity_decode($_POST["fileData"]);

我正在使用实体解码,因为我以前使用entitieshtml(因为二进制数据包含>“并且它破坏了我的html。

我可以得到一个 pdf 文件,但据说该文件已损坏。

你有什么主意吗 ?谢谢

编辑,它正在工作!: 在将二进制数据插入 DB 之前,我将其转换为 base 64 数据。然后,在生成文件的 php 脚本中的“echo”之前,我使用 base64_decode。

它工作正常!我认为我的二进制数据已损坏,因为在将其发送到我的 php 脚本之前,我将其存储在隐藏的输入中!

标签: javascriptphppdf

解决方案


推荐阅读