【问题标题】:Sending PDF as binary with JS, receiving with PHP用 JS 以二进制形式发送 PDF,用 PHP 接收
【发布时间】:2016-07-26 19:10:21
【问题描述】:

我有一个 .pdf 文件客户端,我想以二进制形式发送到我的服务器,服务器将使用 PHP 处理它。

客户端,我正在使用如下所示的 POST 请求:

var newFile = require("sdk/io/file");
var params = {};
params.log = newFile.read(filepath, "b");
var makeRequest = newRequest({
  url: "SERVERURL",
  headers: {
        "Content-Type": "application/pdf"
  },
  content: params,
  onComplete: function(response) {
    console.error(response.text);
  }
}).post();

在服务器端,我正在使用

file_get_contents('php://input')

和 file_put_contents 写入服务器上的路径。

我已经在输入上尝试了 base64_decode 和 urldecode,但它们都没有在服务器上正确地重新生成 PDF。使用 urldecode,我得到一个页数正确的空白 PDF,但没有文本。

我是 PHP 新手,有人可以帮帮我吗?

谢谢。

【问题讨论】:

  • newRequest() 是自定义函数还是 JS 原生的?我找不到任何文档。
  • 它是 Mozilla Firefox 插件 sdk 的一部分。我正在开发一个 Firefox 扩展。
  • 我明白了。我已将该标签添加到您的问题中。您是否尝试过下面我的答案中的解决方案?
  • 我确实将服务器端更改为 $_POST['log']。但是,我认为问题在于 javascript 中的前端编码。我可以让文本文件发送没有问题,但由于某种原因没有对 PDF 进行编码。

标签: javascript php pdf firefox-addon-sdk


【解决方案1】:

我不知道您所有的 PHP 代码是什么样的,但我会将 file_get_contents('php://input') 替换为 $_POST['log']

【讨论】:

    猜你喜欢
    • 2010-11-20
    • 1970-01-01
    • 2015-06-18
    • 2020-05-15
    • 1970-01-01
    • 2011-04-21
    • 2020-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多