我如何从该数组下载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);
这样您就可以决定自己喜欢哪种方式。
PHP strtotime困境 - php有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00…
PHP-全局变量的性能和内存问题 - php假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…
php-casperjs获取内部文本 - php我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…
PHP-从最后一个循环中删除逗号 - php我在循环时有一个PHP,如果是最后一个循环,我想从,中删除最后一个逗号echo '],'; while($ltr = mysql_fetch_array($lt)){ echo '['; echo $ltr['days']. ' ,'. $ltr['name…
PHP Laravel从另一个驱动器读取文件 - php我目前正在学习Laravel。我想知道是否有一种方法可以在Laravel中使用Storage::从另一个硬盘访问文件(使用Windows)。例如,我在驱动器C:上安装了带有Laravel的Xampp,但是我想访问网站目录之外的E:上的文件。我试过使用Storage::files('E:')和File::files('E:…