画像管理クラス
サンプルページ※アップロード不可
ソースダウンロード(15Kbyte)※サンプルソース付
PHPの勉強がてら画像管理クラス(clssImgMng)を作成しました。
主にHPでアルバム機能を提供する目的に作りました。
機能としては、HPからアップロードされた画像をカテゴリ別に
整理して保存。保存時には補助機能として自動的に、
画像からサムネイル画像を生成したり、指定されたコメントも
一緒に保存します。
利用する時には、カテゴリを指定することにより、
カテゴリに登録されている全画像ファイル、全サムネイル画像ファイルの
リンクパス、ファイル名など自由に取得できます。
また、個別の画像ファイルに関するファイル更新日時、サイズ、コメント
なども取得できます。
管理方法は単純なファイル入出力で
行っており、基本的にはPHPが動作するサーバ上で
動くと思います。。
フォルダ、ファイル構成は
※[XXXX]=>フォルダを意味する
+---test.php ※clssImgMngクラスを利用するPHPファイル
|
+---[WebImgMng]--+---[ctg] ※登録データ管理フォルダ
|
+---[pclass] ※内部処理用クラスファイル格納フォルダ
|
+---[tmp] ※画像一時保存フォルダ
|
+---clssImgMng.php ※ユーザが直接使用する「clssImgMngクラス」ファイル
|
+---info.php ※環境設定ファイル
【使用方法】
1.clssImgMngを使用するPHPファイルが存在するフォルダに
[WebImgMng]フォルダを置き、利用ファイル内で以下のように読み込む。
※同じフォルダ内でないと利用不可。
include_once("./WebImgMng/clssImgMng.php");
2.後は、通常のクラスと同様に利用する。
※PHP入門者なので、クソソースが発覚した直ちにぶーいんぐ!(笑)
【動作環境】
・PHP4.0以上(GD動作可能であること)
・アップロード可能なWebサーバであること
・ユーザ管理機能が付いていないので、各自制御すること
※例えば、アップロードは管理者のみ行う場合などは、独自の処理が必要。
画像管理に関する機能のみ提供。
・「使用方法」の手順2で記述したとおり、使用するPHPファイルと
同じレベルに[WebImgMng]を置かないとパスがうまく通らず動作しない(汗)
3.補足として、サムネイル画像のサイズを変更する場合、
環境設定ファイルである「info.php」のSUM_WIDH定義値を変更すれば
変わります。ここで定義されたピクセル数に縦横が収まるように
サムネイル画像が生成されます。
【使用例】※あくまで、利用できるメソッド一覧を
並べる目的で記述しておりますので、
このまま利用しないで下さい!
include_once("./WebImgMng/clssImgMng.php");
$c = new clssImgMng();
//画像管理クラスの初期化
if( $c->load() != true ){
//エラーの処理
}else{
カテゴリ登録
if( $c->addCate([登録するカテゴリ名]) != true ){
//カテゴリ登録失敗の処理
}
カテゴリ削除
if( $c->delCate([削除するカテゴリ名]) != true ){
//カテゴリ削除失敗の処理
}
カテゴリへ画像登録 ※ファイルをアップロードした直後に呼び出されるページでコールして下さい。
/* 例:
↓----------------------- アップロードページのタグ ---------
↓----------------------- test.php -------------------------
if( $c->addUploadImg("犬の画像", "userfile", "コメント") == true ){
echo "アップロード成功";
}
*/
if( $c->addUploadImg([カテゴリ名], [アップロード名※], [画像に対するコメント]) != true ){
※で指定した名前
//アップロードに失敗の処理
}
登録されている画像を削除
if( $c->dellImg([カテゴリ名], [削除する画像ファイル名]) != true ){
//画像削除失敗の処理
}
//登録されているカテゴリ一覧を取得
$cnt = $c->enumCateName($buff);
//登録されている画像ファイル名一覧を取得
$cnt1 = $c->enumImgName([カテゴリ名], $buff1);
//登録されている画像ファイルパス一覧を取得
$cnt2 = $c->enumImgFPath([カテゴリ名], $buff2);
//登録されている画像のサムネイルファイルパス一覧を取得
$cnt3 = $c->enumSumImgFPath([カテゴリ名], $buff3);
//画像ファイル名一覧表示
for($i = 0; $i < $cnt1; $i++){
print(buff1[$i]."
\n");
}
//サムネイル画像一覧表示
for($i = 0; $i < $cnt3; $i++){
print("
\n");
}
//画像個別の情報取得
$fpath = $c->getImgPath([カテゴリ名], [画像ファイル名]); //画像のファイルパス取得
$fpath2 = $c->getSumImgPath([カテゴリ名], [画像ファイル名]); //画像のサムネイル画像ファイルパス取得
$com = $c->getComment([カテゴリ名], [画像ファイル名]); //画像コメント
$fs = $c->getFileSize([カテゴリ名], [画像ファイル名]); //ファイルサイズ
$tm = $c->getTimeStamp([カテゴリ名], [画像ファイル名]); //更新日時
//個別画像の横縦サイズ取得
$w = $c->getW([カテゴリ名], [取得したい画像ファイル名]);
$h = $c->getH([カテゴリ名], [取得したい画像ファイル名]);
}
