首页 > 解决方案 > php如何从二进制数据中显示文件

问题描述

我有运行网络服务的功能,并给我带来二进制文件:

$params->xmlRequest = $paramsStr;

$result = $s->__call("SubmitXmlString",array($params));

$obj_pros = get_object_vars($result);
$xml =  $obj_pros['SubmitXmlStringResult']; 
$xml = simplexml_load_string($xml); 

return ($xml);  

响应示例:

<PnrGetReportDoc ReportName="ExternalDocument">
    <Report ID="6214" Type="pdf" Name="file name" IsCompressed="1">
        <![CDATA[JVBERi0xLjcNCiW1tbW1DQoxIDAgb2JqDQo8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAQolJU......................VPRg==]]>
        </Report>
    <ReportImages>
</ReportImages>
</PnrGetReportDoc>

我想回显内容以显示文件

我试图回显二进制文件,但是: 1. PDF 不显示

  1. 二进制字符开头没有开头的注释:<![CDATA[

这是我试图在其中显示文件的 php 文件:

header('Content-type: application/'pdf);
$fileData = get_file_data ($_GET['fileID']);

echo $fileData->Report;

标签: phpweb-services

解决方案


不是二进制的。准确地说,XML 是众所周知的纯文本数据格式。

从您共享的示例数据中,我想它是Base64,一种将二进制数据编码为纯文本的流行算法。PHP 有一个本地函数来解码它


推荐阅读