如何将 pdf 从烧瓶发送到 JavaScript?

时间:2021-07-02 22:10:41

标签: javascript python-3.x flask

这是我的python3烧瓶代码:

@app.route('/convert', methods = ['POST'])
def convert():
    if('files[]' not in request.files):
        return "No files chosen!"

    files = request.files.getlist('files[]')

    pdf_bytes = img2pdf.convert(files[0])

    return send_file(FileWrapper(BytesIO(pdf_bytes)), mimetype = 'application/pdf')

这是我的 JavaScript Ajax 代码:

$.ajax
    (
      {
        url : '/convert',
        method : 'POST',
        data : form_data,
        cache : false,
        contentType : false,
        dataType : false,
        processData : false,
        responseType : 'blob',
        error : function(jqXHR, textStatus, errorThrown)
        {
          console.log("ERROR!");
          alert(textStatus.toString() + ' ' + errorThrown.toString());
        },
        success : function(res)
        {
          console.log("Response : \n", typeof res)
          console.log(res)
          var blob = new Blob([res], {type: "application/pdf"});
          var url = window.URL.createObjectURL(blob);
          var link = document.createElement('a');
          document.body.appendChild(link);
          link.style = "display: none";
          link.href = url;
          link.download = "pdf_output.pdf";
          link.click();
        }
      }
    )

'pdf_bytes' 保存转换后的 pdf 的二进制字符串格式。我希望能够将其作为 pdf 文件返回或按原样发送到 JavaScript,然后提取 pdf 并在那里下载。 我已经尝试了很多东西,但似乎没有任何效果,就像上面的结果导致下载一个空的 pdf。 请帮助我并提前致谢!

0 个答案:

没有答案