当前位置: 首页 > 面试题库 >

将生成的PDF文件存储在服务器上

连翰
2023-03-14
问题内容

使用该jsPDF插件,我将创建一个.pdf文件并基于单击按钮生成下载。我想将文件保存到服务器上,而不是启动下载。因此,当单击按钮时,我希望将文件保存在:

/tmp/uploads/pdf/example.pdf

我知道我需要使用Jquery.Ajax将文件发布到服务器。但是,查看文档并没有看到对任何.pdf数据类型的支持。

我的代码

$(document).on("click", "#PDF", function () {
    var table = document.getElementById("result");
    var tbl = window.sessionStorage.getItem("tbl");
    var cols = [],
        data = [];

    function html() {
        var doc = new jsPDF('p', 'pt');
        var res = doc.autoTableHtmlToJson(table, true);
        doc.autoTable(res.columns, res.data);
        doc.save( tbl+".pdf");
    }
    html();
});

基于此xml文档保存示例,我尝试了以下操作:

var pdfDocument = doc.save( tbl+".pdf");
        var pdfRequest = $.ajax({
              url: "/tmp/uploads/pdf",
              processData: false,
              data: pdfDocument
            });

这将下载文件而不是保存文件。如何保存文件?


问题答案:

我设法使用来解决此问题FormData(),方法如下:

$(document).on("click", "#PDF", function () {
    var table = document.getElementById("result");
    var cols = [],
        data = [];

    function html() {
        var doc = new jsPDF('p', 'pt');
        var res = doc.autoTableHtmlToJson(table, true);
        doc.autoTable(res.columns, res.data);
        var pdf =doc.output(); //returns raw body of resulting PDF returned as a string as per the plugin documentation.
        var data = new FormData();
        data.append("data" , pdf);
        var xhr = new XMLHttpRequest();
        xhr.open( 'post', 'upload.php', true ); //Post to php Script to save to server
        xhr.send(data);

    }
    html();
});

upload.php

if(!empty($_POST['data'])){
    $data = $_POST['data'];
    $fname = "test.pdf"; // name the file
    $file = fopen("testa/pdf/" .$fname, 'w'); // open the file path
    fwrite($file, $data); //save data
    fclose($file);
} else {
    echo "No Data Sent";
}

关键部分是var pdf =doc.output();您要获取原始pdf数据的位置。



 类似资料:
  • “我想下载一个从基于spring的restful web服务发送的.pdf文件到我的angular应用程序。如何下载,我的angular应用程序或Spring Boot上是不是缺少了一些代码?” 我正在从angular 6应用程序向spring-boot服务器发送一个HTTP GET请求,该服务器生成一个.pdf文件,然后将这个.pdf文件作为blob发送给我,但当我试图在angular侧创建一个

  • 问题内容: 我有两种方法。一个在服务器端生成PDF,另一个在客户端下载PDF。 我如何才能做到这一点而不将其存储在服务器端并允许客户端直接下载它。 以下是两种方法: 和: 问题答案: 建议您使用而不是创建a的人是正确的。例如,请参阅本书第9章中的Hello Servlet: 但是,当您像这样直接发送字节时,某些浏览器会遇到问题。使用a在内存中创建文件并告诉浏览器在内容标头中可以预期多少字节是更安全

  • 我刚刚开始玩google proto。当我尝试编译proto java示例中的proto文件时,它不会生成任何grpc文件。 原型文件,https://github.com/grpc/grpc-java/blob/master/examples/src/main/proto/hello_world.proto 终端输出, rsonkhla@raman-OptiPlex-9020:~/sandbox

  • 关于 Photoshop PDF 格式 您也可以使用“存储为”命令以 Photoshop PDF 格式存储 RGB、索引颜色、CMYK、灰度、位图模式、Lab 颜色和双色调的图像。由于 Photoshop PDF 文档可以保留 Photoshop 数据,如图层、Alpha 通道、注释和专色,因此可以在 Photoshop CS2 或更高版本中打开文档并编辑图像。 注意:通过对文件执行“存储为 Ph

  • 我正在运行一个tomcat服务器, 中,我导出如下所示。 < code > JAVA _ OPTS = " $ JAVA _ OPTS-JAVA agent:/opt/jaco co/lib/jaco agent . jar = dest file =/tmp/jaco co . exec,append=true,includes=*" 这将生成jacoco。文件夹中同一台计算机中的exec文件。

  • 目前我正在使用pdfbox下载我服务器上的所有pdf文件,然后使用pdfbox将它们合并在一起。它的工作非常好,但它非常慢--因为我必须下载所有的。 有没有一种方法可以直接在S3上执行所有这些?我正在试图找到一种方法来实现它,即使不是在Java也是在python中,也无法做到这一点。 我读到了以下内容: 在S3 Amazon上合并文件 null null 编辑 最后我使用 并用 实现它。我设置了最