MENU

画像アップロードの処理


<?
//画像の取り扱い
if($cpImg['cpImg']['size'] >0){//画像がある場合
	if($cpImg['cpImg']['size'] > 1000000){//画像のサイズが1メガ超える場合
		echo '<span class="cautionTxt">画像サイズが大きすぎます(1MB以内)</span>';
		$submitbutton = '<tr><td colspan="2" class="submitBtnCell">
		<input type="button" onClick="history.back()" value="戻って修正する"></td></tr>';
	}else{//画像があって、サイズも規定内で画像に問題がなかった場合
		$updir = "./cp";//画像の格納ディレクトリを指定
		$tmp_file = @$_FILES['cpImg']['tmp_name'];
		//仮のファイル名を変数に格納 ファイルのバイナリはおそらくメモリ領域にあると思われ
		//変数名の前の@はエラーが出ても表示させないためにつける
		//cf:http://plaza.rakuten.co.jp/hknopage/diary/200704190002/
		//$_FILESはスーパーグローバル変数 
		//tmp_nameインデックスのデータはアップロードされたファイルがサーバー上で保存されているテンポラ リファイルの名前。


		@list($file_name,$file_type) = explode(".",@$_FILES['cpImg']['name']);
		//listは複数の変数に複数の値を一度の操作で格納するための関数
		//この場合、文字列を分割するexplodeでファイル名をピリオドの前後で区切り、
		//それぞれをfile_name,$file_typeの2つの変数に宣言と同時に格納している
		
		$copy_file = date("Ymd-His") . "." . $file_type;//他と被らないファイル名を準備
		
		if (is_uploaded_file($_FILES["cpImg"]["tmp_name"])){//is_uploaded_fileはセキュリティ対策。
				//該当のファイルが本当にpostでUPされたデータであるかどうかを判定する 
			if (move_uploaded_file($tmp_file,"{$updir}/{$dervId}-{$copy_file}")){
				//chmod("cp/" . $_FILES["cpImg"]["name"], 0644);
				
				//画像のUPが問題なかった場合()この段階で画像はすでにUPされてます。
				//あとはDBにファイル名をinsertして終わり
				echo '<img src="' . $updir . '/' . $dervId . '-' .$copy_file . '" alt="' . $cpPlof['cpName'] . '">';
				echo '<input type="hidden" name="cpImg" value="'. $dervId . '-' .$copy_file. '">';
				
				else {
				echo "ファイルをアップロード出来ませんでした。";
			}
		} else {
			echo "ファイルが選択されていません。";
		}
		$submitbutton = '<tr><td colspan="2" class="submitBtnCell"><input type="submit" name="cpInsert" value="この内容でコンパニオン情報を編集する"></td></tr>';
	}
}

目次