将压缩的PDF文件内容从客户端发送到后端服务器

时间:2020-04-15 12:54:17

标签: javascript jquery ruby-on-rails ruby pdf

我正在使用ilovepdf压缩在客户端上传的pdf文件。我得到压缩文件的内容作为响应。

理想情况下,我想要的是-:

  • 在客户端制作文件(PDF),并收到文件内容响应。
  • 将文档附加到文件上传DOM元素。
  • 将文件提交到后端。

但是,似乎禁止在客户端(浏览器)读取/写入包含内容的文件。因此,以上无法实现。 我还尝试仅将压缩文件内容附加到DOM元素,然后使用formdata提交到后端,但是,当我保存后端接收到内容的文件时,发现文件损坏或无法打开。

触发以下代码,以便从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")
        }
      });
    }
  });
}

Compressed file response received

1 个答案:

答案 0 :(得分:0)

您可以使用 wicked_pdf gem从服务器生成PDF,并在base64中对其进行编码,然后将base64编码的字符串返回给客户端服务器,并且在客户端服务器上,您可以使用此代码下载PDF:

window.downloadPDF = function downloadPDF() {

    var dlnk = document.getElementById('dwnldLnk');
    dlnk.href = pdf; <this would be your return encoded string in response>

    dlnk.click();


    alert('toma');
}
相关问题