javascript - 将 javascript 生成的 PDF 文件上传到服务器

标签 javascript jquery pdf coldfusion pdfmake

请注意,我上传的是运行时生成的文件,而不是用户提交的文件。这就是我的问题所在,事实证明,获取该文件并将其发送出去确实是一个挑战。

我正在使用 PDFMake 生成 pdf 文件。我花了很长时间才让这段代码工作,tl;dr 其中我将 pdf 文档信息转换为缓冲区,使用该缓冲区创建一个新的 File 对象,将该文件对象附加到 formdata 对象,并将其发送到我的服务器。

代码如下:

    var pdfGen = pdfMake.createPdf(docDef);

    pdfGen.getBuffer(function(buffer){
        var pdf = new File(buffer, "testpdf.pdf", {type: "application/pdf"});
        var data = new FormData();
        data.append('upload', pdf);
        data.append('content-type', 'application/pdf');

        $.ajax({
            method: "POST",
            url: "/index.cfm?action=admin:service.upload_pdf",
            data: data,
            processData: false,
            contentType: false,
            success: function(msg){
                console.log(msg);
            },
            error: function(msg){
                console.log(msg);
            }
        })
    })

问题是我在服务器上获得的文件不是有效的 PDF。应用程序类型列为 application/octet-stream。我将 File 对象推送到的函数应该拒绝除 pdf 之外的所有内容,所以我不确定错误的确切位置。

我已经在这两天了,我很茫然,所以非常感谢任何帮助。

最佳答案

您是否尝试过将生成的 PDF 转换为 Base64,然后将结果发送到您的服务器? 这就是我的意思:

var pdfGen = pdfMake.createPdf(docDef);
pdfGen.getBase64((data) => {
    PostToServer(data);
});

来源:https://github.com/bpampuch/pdfmake

关于javascript - 将 javascript 生成的 PDF 文件上传到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46227817/

相关文章:

javascript - jQuery 切换背景图片

c# - 使用 iTextsharp 检查 pdf 中的复选框字段的常用方法是什么?

C# WPF System.Drawing.Image 到 System.Windows.Media.Imaging.BitmapSource

java - 如何使用 XSL-FO/Apache FOP 在表行中重复相同的模板

javascript - JS -Jquery - 从 Jquery 插件内部调用方法

javascript - 避免在 ES6 中使用 .bind =>

javascript - Redux 比较数组的每个索引

jquery - $ ('iframe' ).css ('visibility' ,'hidden' ) 无法在 Google Chrome 中工作

javascript - 如何更改附加元素的颜色?

javascript - ResponsiveSlides 不显示寻呼机