我如何从该数组下载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);
答案 0 :(得分:2)
尝试一下:
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);
因此您可以决定喜欢哪种方式。