二进制数据只是实际文件,或者更确切地说是该文件的重要内容,只是没有文件名。
$base64 = /* some base64 encoded data fetched from somewhere */;
$binary = base64_decode($base64);
你在$ binary变量中有文件的文件数据/内容。从这里开始,这取决于你想做什么。您可以将数据写入文件,然后获得“实际”PDF文件:
file_put_contents('my.pdf', $binary);
您可以使用适当的标头将数据吐出到浏览器,用户将收到类似PDF文件的内容:
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="my.pdf"');
echo $binary;
它生成一个pdf文件,但它没有打开..出现错误。 //下面是php文件
<?php
$base64 = "/here binary code/";
$binary = base64_decode($base64);
file_put_contents('my.pdf',$binary);
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="my.pdf"');
echo $binary;
?>
然后如何将下载的文件与原始文件进行比较。
答案 0 :(得分:1)
我认为您的问题是您在$ base64变量中没有正确的数据。您只是制作PDF回复,但该回复的内容不是PDF文件。
(您可以尝试从一些真实的PDF中读取内容,将此数据填充到$ binary,它应该可以工作。)