[PHP] POSTされた画像データを取得・保存する

PHPに対してPOSTされた画像データを取得・保存するサンプルソース
Flashとの連携などで画像データを受け取る際に使用する。

<?php
// 画像データ取得
$img = file_get_contents('php://input');
// 一意なテンポラリファイル名を生成
$tmpfname = tempnam('./', 'img_');
unlink($tmpfname);
// ファイル名に拡張子を付加
$tmpfname = $tmpfname . '.jpg';
// ファイルをサーバに保存
$fp = fopen($tmpfname, 'wb');
fwrite($fp, $img);
fclose($fp);
?>

このサンプルはセキュリティ等を考慮していない必要最低限のソース

以下はグローバル変数を使用するパターン

<?php
$tmpfname = tempnam('./', 'img_');
unlink($tmpfname);
$tmpfname = $tmpfname . '.jpg';
$fp = fopen($tmpfname, 'wb');
fwrite($fp, $GLOBALS['HTTP_RAW_POST_DATA']);
fclose($fp);
?>

PHP 4.0.6 より前のバージョンでは、tempnam の動作はシステムに依存する。
詳しくは以下を参照

  • Windows : TMP 環境変数が dir パラメータを上書きする。
  • Linux : TMPDIR 環境変数が優先される。
  • SVR4 : 指定したディレクトリが存在する場合は、常に dir パラメータが使用される。

トラックバックURL

http://mashimonator.weblike.jp/mt/mt-tb.cgi/22

コメント投稿フォーム