新規投稿
フォローする

phpで添付ファイルフィールドの取得・表示

お世話になっております。

実現したいこと:phpよりkintone内の「添付ファイルフィールド」のデータを取得・表示

⇒php上でcurlを使用し、以下ソースコードで試しておりますが返り値がNULLとなってしまいます。

※FileKeyの取得はきちんとできていることは確認済みです。

ご教授願います。

===============================

$fileKey = 取得したFileKey

$apiToken = 'X-Cybozu-API-Token: [APIトークン]';

$download_url = 'https://[サブドメイン名].cybozu.com/k/v1/file.json?fileKey='.$fileKey;

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $download_url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, [
 $apiToken
]);

//実行
$response = curl_exec($curl);

//返り値をデコード
$response = mb_convert_encoding($response, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$response = json_decode($response, true);
var_dump($response);

//クローズ
curl_close ($curl);

0

2件のコメント

Avatar
ろどすた

こんにちは!

ファイルダウンロード API の返り値は添付ファイルのバイナリデータなので、

返り値をデコードする処理は不要です。

$response をそのまま出力すれば、データを取得できるはずです。

0
Avatar
m.u

コメントありがとうございます。

早速デコード処理をコメントアウトし、$response をそのまま出力したところバイナリデータらしきデータが取得できていることが分かりました。ご教授いただきありがとうございます。

こちらのデータをさらにjavasctiptに受け渡し、画面上にダウンロードリンク?で表示したいと考えておりますが、受け渡しの際は

$file = base64_encode($response);

でエンコードした後に受け渡すという方法で合っているのでしょうか・・・?

そもそもバイナリデータをダウンロードリンクで表示することは可能なのでしょうか?

m.uにより編集されました
0
サインインしてコメントを残してください。