【发布时间】:2020-07-28 10:53:03
【问题描述】:
我正在使用ilovepdf 来压缩在客户端上传的 pdf 文件。我得到压缩文件内容作为响应。
理想情况下我想要的是 -:
- 在客户端制作一个文件(PDF),文件内容收到响应。
- 将文档附加到文件上传 DOM 元素。
- 将文件提交到后端。
但看起来禁止在客户端(浏览器)读取/写入包含内容的文件。所以以上无法实现。 我还尝试仅将 压缩文件内容 附加到 DOM 元素并使用 formdata 提交到后端,但是,当我使用后端收到的内容保存文件时,我发现文件已损坏或无法打开。 p>
触发以下代码从 ilovepdf 服务器下载并上传到我的服务器。
function downloadPDF() {
$.ajax({
type: 'GET',
headers: {
'Authorization': 'Bearer ' + token
},
url: "https://" + server + "/v1/download/" + task,
success: function(response) {
var form = new FormData();
form.append("file", response);
$.ajax({
type: 'POST',
url: "/properties/compressed",
processData: false,
contentType: false,
data: form,
success: function(response) {
console.log("sent to server")
}
});
}
});
}
【问题讨论】:
-
1) 使用JSPDF 2 & 3) 创建FormData 对象和upload the PDF file using AJAX。您必须为此使用 AJAX,因为出于安全原因,您无法将数据附加到文件输入控件。您可以对 PDF 文件进行 base64 编码并将其发送到隐藏的输入中,但这很丑陋,并且需要您在服务器上接收到文件数据时重新构建它。
-
尝试使用formdata并使用ajax上传,仍然有损坏的pdf文件。
-
那么请出示您的代码,以便我们帮助您调试
-
在问题中编辑和添加代码
-
那是你的编辑。
form.append("file", response);行中的response是什么?我想这是“ilovepdf”的解压缩输出?如果是压缩文件,那就是问题所在。
标签: javascript jquery ruby-on-rails ruby pdf