如何使用Javascript从jsPDF保存PDF文件到服务器?

11

var doc = new jsPDF();
$('#generatereport').click(function() {
   doc.fromHTML($('#lppresults')[0], 15, 15, {
   width: 170
   }, function() {
   doc.save('sample-file.pdf');
   });
});
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
        
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.4/jspdf.min.js"></script>
<div class="survey-results" id="lppresults">
    <button id="generatereport">Download Report</button>
    <h1 style="border: solid;">TEST CONTENT</h1><br />
    <h1 style="border: solid;">TEST CONTENT1</h1>
</div>
        
          

我想使用JavaScript将文件保存在服务器上,但目前只能将文件保存在用户的电脑上。


哪个服务器,是 node,还是 IIS - Prashant Pimpale
IIS是一个东西,但是PHP中运行的是代码。 - Dilip Shekhawat
那么你想将它存储在IIS服务器上吗? - Prashant Pimpale
我正在使用 PHP,所以服务器是 Linux。 - Dilip Shekhawat
然后,您需要创建一个API,该API将接受PDF文件并保存在您的Web服务器上。 - Prashant Pimpale
@DilipShekhawat,获得15个声望点后,您可以为答案投票。如果您喜欢我的答案,可以给它点赞。请阅读:当有人回答您的问题时,您应该怎么做 - Bharata
1个回答

23

你需要使用doc.output函数,参数为'blob',而不是doc.save函数。

Javascript部分:

var doc = new jsPDF();
$('#generatereport').click(function()
{
    doc.fromHTML(
        $('#lppresults'), 15, 15,
        {width: 170},
        function()
        {
            var blob = doc.output('blob');

            var formData = new FormData();
            formData.append('pdf', blob);

            $.ajax('/upload.php',
            {
                method: 'POST',
                data: formData,
                processData: false,
                contentType: false,
                success: function(data){console.log(data)},
                error: function(data){console.log(data)}
            });
        }
    );
});

这是 upload.php 的代码:

<?php
move_uploaded_file(
    $_FILES['pdf']['tmp_name'], 
    $_SERVER['DOCUMENT_ROOT'] . "/uploads/test.pdf"
);
?>

太好了,这对我非常有帮助,谢谢你,节省了我的时间。 - kantsverma
非常有用,谢谢。我希望在文档中能更清楚地解释.save和.output之间的区别,并且更容易找到。 - andreini

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接