将生成的PDF文件存储在服务器上
使用该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();
});
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数据的位置。
以上是 将生成的PDF文件存储在服务器上 的全部内容, 来源链接: utcz.com/qa/433314.html