php - 如何从解码的base64字符串中获取pdf
问题描述
我如何从这个数组中下载 pdf,这是我当前代码的样子,我无法保存 pdf。谢谢你的帮助。这是我当前的代码:
$result = $SoapClient4->getContractBill($contractId, 2019, '09');
var_dump($result);
#$base64data = preg_replace('#data:application/pdf/[^;]+;base64,#', '', $result['ContractBills'][0]['RawFileData']);
$decoded = base64_decode($base64);
$file = 'invoice.pdf';
$file_put_contents($file, $decoded);
$pdf_decoded = base64_decode($base64data);
$pdf = fopen('test.pdf','w');
fwrite($pdf,$pdf_decoded);
fclose($pdf);
解决方案
尝试这个:
- 删除“base64”(7 个字符)
- 解码字符串
- 写入文件
file_put_contents('test.pdf', base64_decode(substr($result['ContractBills'][0]->rawFileData, 7)));
请注意键的大小写正确,因为它们区分大小写。
'RawFileData' !== 'rawFileData'
.
在您的评论问题后编辑:
您可以将您的代码替换为
$result = $SoapClient4->getContractBill($contractId, 2019, '09');
file_put_contents('invoice.pdf', base64_decode(substr($result['ContractBills'][0]->rawFileData, 7)));
就这些。确保您以正确的路径编写 invoice.pdf。
单线的作用与以下相同:
$result = $SoapClient4->getContractBill($contractId, 2019, '09');
$file = 'invoice.pdf';
$base64raw = $result['ContractBills'][0]->rawFileData;
$base64 = substr($base64raw, 7);
$decoded = base64_decode($base64);
file_put_contents($file, $decoded);
所以你可以决定你喜欢哪种方式。
推荐阅读
- html - 创建动态 HTML 表格
- c# - BinaryWriter 写出有趣的字符
- python - 求解器“CPLEX”在 CVXPY 中失败
- excel-formula - 根据列标题连接
- selenium - AWS Lambda 层下的 Selenium Webdriver 终止函数
- php - 将单个数组拆分为数组
- dialogflow-es - 如何在 dialogflow-fulfillment 中创建表
- amazon-web-services - 如何修复自定义 AWS AMI
- python - 在 tensorflow2.0 文档的 keras 功能 api 中创建层的语法
- python - merge list of nested list to a single list which has lakhs of data python