質問編集履歴
1
説明の要点がまとまっていなかったため文章を書き直しました。
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
【PHP】バイナリデータ
|
1
|
+
【PHP】salesforceで登録している実ファイルのバイナリデータをブラウザで表示したい
|
body
CHANGED
@@ -1,32 +1,27 @@
|
|
1
|
-
base64形式のバイナリデータをブラウザで出力するにはどうしたら良いでしょうか?
|
1
|
+
base64形式のバイナリデータをブラウザで出力するにはどうしたら良いでしょうか?
|
2
|
+
|
2
3
|
ユーザーの概念があるシステムで、ユーザー毎に動的にファイルを変えます。
|
4
|
+
ユーザーやバイナリファイルの管理はsalesforceで行なっています。
|
3
5
|
|
4
|
-
##
|
6
|
+
## 構成
|
5
|
-
実現したい事を簡略化したソースが下記です。
|
6
|
-
|
7
|
+
salsesforceのAPI経由でデータを取得します。
|
7
8
|
|
9
|
+
該当するユーザー(Accountオブジェクトとは別のオブジェクト)に紐ずく```Attachement```オブジェクトから、PDFのバイナリデータを取得します。
|
8
|
-
|
10
|
+
取得後、取得したPDFのバイナリデータをデコードしてブラウザ上に表示します。
|
11
|
+
|
12
|
+
Attachmentオブジェクトから該当するIDのbody(base64にエンコードされたデータ)を取得する事は確認できました。
|
13
|
+
|
9
14
|
```php
|
10
15
|
<?php
|
11
|
-
// ユーザーに紐付くbase64でエンコードされた、バイナリデータを取得します
|
12
16
|
|
13
|
-
$userID = 1;
|
14
|
-
$pdfFIles = [
|
15
|
-
'user0.pdf',
|
16
|
-
'user1.pdf'
|
17
|
-
]
|
18
|
-
$
|
17
|
+
$rowFile = <Attachmentオブジェクトから取得したファイルのbody>;
|
19
|
-
|
20
|
-
// PDFファイル作成
|
21
18
|
header('Content-Type: application/pdf');
|
22
|
-
echo(base64_decode($
|
19
|
+
echo(base64_decode($rowFile));
|
23
20
|
exit();
|
24
21
|
|
25
22
|
?>
|
26
23
|
```
|
27
24
|
|
28
|
-
実際には、バイナリデータ自体をデータベース上で管理しており、ユーザーに紐づくPDFデータを取得します。
|
29
|
-
|
30
25
|
## エラー内容
|
31
26
|
PDFとして認識できていないのか表示できません。
|
32
27
|

|