PHP如何保存JQ AJAX POST过来的DATA URI数据问文件?

发布于 2022-09-05 10:13:09 字数 1053 浏览 14 评论 0

我使用JSPDF这个插件,将网页转换成了PDF文件,JSPDF有个方法,可以使用doc.output()把PDF转化为DATA URI数据。
然后我用AJAX,把这个doc.output()POST到了服务器,PHP接收后,把这个数据使用fwrite()的方法写入文件,可以成功创建PDF,但是这个PDF打开后有问题,提示内存不足,有页面,但是显示的是空白页面。有人可以帮忙解决下吗?付费也可以。

我是这样来实现的,麻烦看下是什么问题:

JQ部分:doc.output()之前的没有问题,在此省略。JSPDF里面说doc.output()是一个DATA URI数据,不懂这是什么数据。

pdfup(doc.output());
function pdfup(pdf){
     $.ajax({
             url: 'pdfup.php',
             method: 'POST',
             data:{pdf:pdf},
             success: function(data) {
                    console.log(data);
             }
         })
}

PHP部分:

$pagecontent =$_REQUEST['pdf'];

//要创建的文件
$mulu="../upload/pdf/".date('Y')."/".date('m')."/";
if (!is_dir($mulu)){@mkdir($mulu, 0777, true);}
$TxtFileName =$mulu."1111.pdf";
//以读写方式打写指定文件,如果文件不存则创建
if(($TxtRes=fopen ($TxtFileName,"w+")) === FALSE){
echo("no");
exit();
}
if(!fwrite ($TxtRes,$pagecontent)){ //将信息写入文件
echo ("尝试向文件".$TxtFileName."写入失败!");
fclose($TxtRes);
exit();
}

这种保存DATA URI的方式是不是不对?但是我不会别的方法了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

征棹 2022-09-12 10:13:09

data uri 是一种数据流格式,不能直接接收后写入文件,例如图片的base64格式也是data uri的一种。
file_put_contents($tempPath,file_get_contents("php://input"));
$tempPath //是要保存的文件名称
要将接受到的数据处理后再写入文件

http://www.cnblogs.com/yida91...

可以查查关于data uri的资料 ,以上仅供参考

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文