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