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 に答える