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でサーバーにファイルを保存したいのですが、現在、このファイルはユーザーのコンピューターにしか保存できません。
doc.save
関数の代わりに、型としてdoc.output
をパラメータとして 'blob'
関数を使用する必要があります。
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"
);
?>