从 Base64 字符串下载 PDF
Download PDF from Base64 string
我的情况(都在PHP):
我得到的结果:来自 API.
的 Base64 编码字符串
我想要什么:单击 link 可将此文档下载为 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。
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;
我的情况(都在PHP):
我得到的结果:来自 API.
的 Base64 编码字符串我想要什么:单击 link 可将此文档下载为 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。
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;