1. Home
  2. Archive
  3. PHPの画像アップロードライブラリ「CLASS.UPLOAD.PHP」を使ってみた

PHPの画像アップロードライブラリ「CLASS.UPLOAD.PHP」を使ってみた

画像アップロードのプログラムを作成する機会があったので、、少し前にPHPSPOT開発日誌で紹介されたライブラリを使ってみることにしました。

ファイルアップロード&画像加工を簡単に実現できるクラスライブラリ「CLASS.UPLOAD.PHP」:phpspot開発日誌

今回欲しかった機能は下記。

  • 保存する画像名を指定
  • 同名ファイルがあった場合は上書き
  • サムネイル画像も同時に保存

デモページにいろいろな使用例が掲載されています。

サムネイルのリサイズ等はデモページに載ってたので簡単にできたのですが、画像名の指定や上書き設定などは載ってなかったのでソース見ながら設定しました。

function image_upload($filename){
  require "class.upload.php";

  $image_file = $_FILES['image_file'];
  $handle = new Upload($_FILES['image_file']);
  $upload_dir = "/home/user/files/";

  if(!$handle->uploaded)
    return $handle->error;

  //通常の大きさの画像
  $handle->file_overwrite     = true;      //ファイル上書き有効
  $handle->file_auto_rename   = false;     //ファイル名自動リネーム無効
  $handle->file_src_name_body = $filename; //ファイル名指定
  $handle->Process($upload_dir);           //画像アップロード実行

  //サムネイル画像
  $handle->file_overwrite     = true;
  $handle->file_auto_rename   = false;
  $handle->file_src_name_body = $filename . "_thumb";
  $handle->image_resize       = true;
  $handle->image_ratio_y      = true;
  $handle->image_x            = 50;
  $handle->Process($upload_dir);

  if (!$handle->processed)
    return $handle->error;
}

ファイル上書きに関しては、file_overwriteを有効にするだけでよさそうだったのですが、file_auto_renameを無効にしないとうまく動きませんでした。

また、$handle->Process($upload_dir)を実行した時点でプロパティの値が初期化されるようなのでサムネイル画像にも同じようにプロパティを設定しています。

その他にもいろいろとオプション設定できるみたいで、かなり使えるライブラリじゃないかと思いました。

関連書籍

PHPによるWebアプリケーションスーパーサンプル 第2版 PHPによるWebアプリケーションスーパーサンプル 第2版
西沢 直木

トラックバックURL

http://webtech-walker.com/archive/2007/06/11210929.html/trackback

※トラックバックを受け付けてから表示するまでにしばらく時間がかかる場合があります。

コメントフォーム

※HTMLタグは使用できません。