【发布时间】: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