我正在使用 jsPDF 在客户端生成 pdf。使用函数 doc.save('filename.pdf') 我可以下载它。
现在我需要将其保存在服务器上,因此我使用 .ajax() 发送 pdf 数据并使用 PHP 脚本接收它,但生成的 pdfURL 上的图像不显示(http://mydomain/tmp/test.pdf);仅显示文本。
你能帮我一下吗?
我的js代码:
//doc.save('test.pdf'); WORKS WELL
var pdf = doc.output();
$.ajax({
method: "POST",
url: "inc/test.php",
data: {data: pdf},
}).done(function(data){
console.log(data);
});
PHP 脚本:
<?php
if(!empty($_POST['data'])){
$data = $_POST['data'];
print_r($data);
file_put_contents( "../tmp/test.pdf", $data );
} else {
echo "No Data Sent";
}
exit();
?>
这是 php 脚本编写过程后生成的 pdf:http://control.edge-cdn.com.ar/tmp/test.pdf
这是使用 doc.save() 函数生成的:http://control.edge-cdn.com.ar/repo/all.pdf问候!
SOLUTION:
我试图以二进制形式发送 pdf 数据。我只是对字符串进行 Base64 编码,发送它,然后他们在 php.ini 上对其进行解码。
JS:
var pdf = btoa(doc.output());
$.ajax({
method: "POST",
url: "inc/test.php",
data: {data: pdf},
}).done(function(data){
console.log(data);
});
PHP:
if(!empty($_POST['data'])){
$data = base64_decode($_POST['data']);
// print_r($data);
file_put_contents( "../tmp/test.pdf", $data );
} else {
echo "No Data Sent";
}
exit();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)