1

这是我使用 php 工具包和企业 wsdl 从 Salesforce.com 下载附件的代码:

    header('Content-Type: application/force-download');
    header('Content-Disposition: inline; filename="image.jpg"');        
    $mySforceConnection = getConnection();
    $query = "SELECT Id, Name, Body from Attachment Where Id ='" .$id ."'";
    $queryResult = $mySforceConnection->query($query);

    $records = $queryResult->records;
    print_r(base64_decode($records[0]->fields->Body));

当我这样做时,文件会以正确的字节数正确下载,但是当我打开图像时,Windows 图像查看器会说它已损坏。知道为什么会这样吗?

相同的代码适用于 PDF 和文本文件。

4

1 回答 1

1

正如@eyescream 提到的,您真的只想回显输出。使用该print_r功能时,会在输出中放置额外的制表符和换行符以使其更具可读性。平原echo会正确输出。

header('Content-Type: application/force-download');
header('Content-Disposition: inline; filename="image.jpg"');

$mySforceConnection = getConnection();

$query = "SELECT Id, Name, Body from Attachment Where Id ='" .$id ."'";
$queryResult = $mySforceConnection->query($query);

$records = $queryResult->records;
echo base64_decode($records[0]->fields->Body);
于 2013-02-10T11:22:40.340 回答