Help us understand the problem. What is going on with this article?

kintoneに添付した画像ファイルを PHPで表示する

More than 1 year has passed since last update.

kintoneのデータに添付した画像ファイルを、PHPで表示します。

kintone接続のキホン

PHPから kintoneに接続するサンプルは、こちらのサイトなどが参考になります。

次のようなプログラムを作成します。

<?php
define("API_TOKEN", "");
define("SUB_DOMAIN", "");
define("APP_NO", "");

//サーバ送信するHTTPヘッダを設定
$context = stream_context_create(array (
        'http'=>array(
        'method'=>'GET',
        'header'=> "X-Cybozu-API-Token:". API_TOKEN ."\r\n"
    )
));

$id = 1; // 取得したいレコード番号

$param = 'app=' . APP_NO . '&id=' . $id;
$contents = file_get_contents('https://' . SUB_DOMAIN . '.cybozu.com/k/v1/record.json?' . $param, FALSE, $context);

// 正常に動作しない場合は、以下のコメントを外してください
//var_dump($http_response_header);

$data = json_decode($contents, true);
$data = $data['records'];

fileKeyを取得する

ファイルを取得するには、添付ファイルのフィールドの中の「fileKey」が必要です。

$data['添付ファイル']['value'][0]['fileKey'];

ファイルを取得する

続いて、ファイルを取得します。file.jsonfileKeyを渡して取得します。

$param = 'fileKey=' . $data['添付ファイル']['value'][0]['fileKey'];
$contents = file_get_contents('https://' . SUB_DOMAIN . '.cybozu.com/k/v1/file.json?' . $param, false, $context);

すると、「$contents」にファイルの内容がそのまま入ります。これを、<img>タグで表示させたいのですが、ここでは Base64にエンコードしてsrc属性にそのまま入れ込みます。

<img src="data:image/jpeg;base64,<?= base64_encode($contents);">

これで、画像が表示されます。

seltzer
株式会社エイチツーオー・スペース 代表取締役 「ちゃんとWeb」をコーポレートテーマに、Web標準に準拠したメンテナンスしやすいWebサイトを「ちゃんと」作ることを目指したWeb制作会社。 WordPressを利用したサイト制作や、スマートデバイス向けサイトの制作、PHPやJavaScriptによる開発を得意とする。 また、CSS Niteや Word Campでの講演や著書などを通じ、クリエイタ
https://h2o-space.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした