PHP

$_FILESのあつかいに関して

More than 5 years have passed since last update.

ドットインストール - PHPで作る「画像掲示板」から参照


ファイルのエラー処理

if ( $_FILES['ねーむ']['error'] != UPLOAD_ERR_OK ) 

{
echo 'エラーがはっせい!';
exit;
}

これ ↑ を使ってエラーをチェックできるよ!

エラーがなければエラーコードは0

2はファイルサイズがおおきすぎるとき?



アップされたファイルの拡張子をswitchでばあいわけ

$imagesize = getimagesize($_FILES['ねーむ']['tmp_name']); 

switch($imagesize['mime']){
case 'images/gif':
$ext = '.gif';
break;
case 'imagse/jpeg':
$ext = '.jpg';
break;
default:
echo 'gif/jpeg only/!!';
exit;

}

getimagesize()はイメージにアクセスできない場合、FALSEをリターンするよ!

アクセスできるとファイルサイズを教えてくれるよ!



ファイルをほぞん!

$imageFileName = sha1( time().mt_rand() ). $ext;

// 元画像を保存
$imageFilePath = IMAGES_DIR. '/' . $imageFileName;

$rs = move_uploaded_file( $_FILES['ねーむ']['tmp_name'], $imageFilePath );
if ( !$rs ) {
echo 'あっぷしっぱい!';
exit;
}

これでアップロードが成功したらIMAGES_DIR/のなかに入っているよ!

※ IMAGES_DIR は定数です

よし、きょうはおわり!