2009年09月16日
class.upload.phpで簡単画像アップロード
画像アップロードライブラリ「class.upload.php」の使用方法です。
以下は、オリジナル画像をアップロードして、S、M、Lの3サイズの画像を生成する例です。
require 'class.upload.php';
$file_name = 'hoge';
$upload_dir = '/path/to/upload/';
$handle = new Upload($_FILES['image_file']);
if ($handle->uploaded) {
// Sサイズ画像
$handle->allowed = array('image/*'); // 画像のみ許可
$handle->image_convert = 'jpg'; // jpgに変換
$handle->file_overwrite = true; // 上書き許可
$handle->file_auto_rename = false; // 自動リネーム禁止
$handle->file_src_name_body = $file_name . "_S"; // ファイル名
$handle->image_resize = true; // リサイズ許可
$handle->image_ratio = true; // 縦横比維持
$handle->image_x = 100; // 横最大値
$handle->image_y = 100; // 縦最大値
$handle->image_ratio_no_zoom_in = true; // image_x、image_yより小さいサイズは拡大禁止
$handle->Process($upload_dir);
// Mサイズ画像
$handle->allowed = array('image/*'); // 画像のみ許可
$handle->image_convert = 'jpg'; // jpgに変換
$handle->file_overwrite = true; // 上書き許可
$handle->file_auto_rename = false; // 自動リネーム禁止
$handle->file_src_name_body = $file_name . "_M"; // ファイル名
$handle->image_resize = true; // リサイズ許可
$handle->image_ratio = true; // 縦横比維持
$handle->image_x = 200; // 横最大値
$handle->image_y = 200; // 縦最大値
$handle->image_ratio_no_zoom_in = true; // image_x、image_yより小さいサイズは拡大禁止
$handle->Process($upload_dir);
// Lサイズ画像
$handle->allowed = array('image/*'); // 画像のみ許可
$handle->image_convert = 'jpg'; // jpgに変換
$handle->file_overwrite = true; // 上書き許可
$handle->file_auto_rename = false; // 自動リネーム禁止
$handle->file_src_name_body = $file_name . "_L"; // ファイル名
$handle->image_resize = true; // リサイズ許可
$handle->image_ratio = true; // 縦横比維持
$handle->image_x = 500; // 横最大値
$handle->image_y = 500; // 縦最大値
$handle->image_ratio_no_zoom_in = true; // image_x、image_yより小さいサイズは拡大禁止
$handle->Process($upload_dir);
if (!$handle->processed) return $handle->error;
} else {
return $handle->error;
}
設定できるプロパティはたくさんあります。
詳しくは、class.upload.phpのサンプルページをご覧ください。

コメント
はじめまして。
class.upload.phpの使用例で検索していたところ、こちらのサイトに辿り着きとてもわかりやすい説明で感謝しています。
そこで質問ですが、上記のプログラムは上手く行ったのですが、僕の場合は3つの画像のファイル名をランダムで生成して各フォルダに保存しています。そしてデーターベースに登録しているのですがファイル名を登録したいのですが、ファイルの拡張子取得はどこをいじればよいのでしょうか?
今はランダムで生成したファイル名のみ登録されて(当たりませですが。)拡張子が登録できません。
いきなりの質問で申し訳ないですがご伝授頂けたら幸いです。
宜しくお願いします。
拡張子についてですが、
class.upload.phpでは以下のプロパティで、
アップロード後のファイル形式を指定できます。
—-
$handle->image_convert = ‘jpg’; // jpgに変換
—-
jpgに書き出した場合は、
拡張子はjpgになりますので、
ランダムなファイル名に「.jpg」を追加して
データベースに登録してあげればよいと思います。
コメントを投稿