画像アップロード関連メモ

以下、完全に自分用メモ

■CakePHPで画像アップロードした場合の中身
 参照ボタンで画像を選択してアップロード後に debug($this->data) すると、

    [image] => Array
        (
            [name] => Bonsai.gif
            [type] => image/gif
            [tmp_name] => /Applications/MAMP/tmp/php/phpCXMUmf
            [error] => 0
            [size] => 2105
        )

 [tmp_name]が画像を一時的に設置するテンポラリフォルダの場所 になっている。
 画像アップ後は move_uploaded_file で移動させる処理を行う。

■テンポラリフォルダの取得方法
 テンポラリフォルダは2つある。
 1)php.ini で upload_tmp_dir にパスを記載している場合
   → var_dump(ini_get(‘upload_tmp_dir’));
     でパスを取得できる
     ※記述がない場合は no value となりbool(false)が返り
      システムのテンポラリフォルダが自動的に利用される。
 2)システムのテンポラリフォルダ
   →  echo sys_get_temp_dir();
     でシステムが利用するテンポラリフォルダのパスを取得できる

■URLを指定して画像を取得

 $author_img_url = 'http://images.apple.com/iphone/home/images/a6_hero.png';
 $tmp_author_img_data = file_get_contents($author_img_url);
 file_put_contents('./test-aaa.jpg', $tmp_author_img_data); 

■参考URL
 PHP: sys_get_temp_dir – Manual
 [PHP]画像をダウンロードしてサーバーの特定のディレクトリに保存する « Codaholic