繁体   English   中英

从Base64字符串下载PDF

[英]Download PDF from Base64 string


我的情况(全部用PHP):

我得到的:来自API的Base64编码字符串。

我想要的:点击的链接将此文档下载为PDF。 (我相信它永远是PDF文件)

我试过这个:

    $decoded = base64_decode($base64);
    file_put_contents('invoice.pdf', $decoded);

但我很失落,似乎无法找到解码后下载它的方法。

我希望有人可以帮助我,提前谢谢!

这里的例子似乎很有帮助: http//php.net/manual/en/function.readfile.php

在你的情况下:

<?php
$decoded = base64_decode($base64);
$file = 'invoice.pdf';
file_put_contents($file, $decoded);

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="'.basename($file).'"');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    readfile($file);
    exit;
}
?>

这应该强制下载发生。

不需要解码base64。 您可以使用二进制文件发送标头。

header('Content-Description: File Transfer');
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename='.$filename);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . strlen($filedata));
ob_clean();
flush();
echo $filedata;
exit; 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM