phpで複数のファイルをアップロードするサンプルプログラム

PHPコード下記:
// 複数のファイルをアップロード
function multifile_upload()
{
//アップロードファイル情報を取得
$up_info=$_FILES['pic’];
$ob_path="images_c";
$typelist=array(“image/gif","image/jpeg","image/pjpeg","image/png"); // アップロードファイルタイプ

for($i=0;$i<count($up_info['name’]);$i++) {

//foreach ループで複数のファイルのアップロードをする

//ファイルアップロードはエラーかどうかを判断

if($up_info['error’][$i]>0){

switch($up_info['error’][$i]){

case 1:

$err_info=" php.iniの upload_max_filesizeの値を超える";

break;

case 2:

$err_info="HTMLのMAX_FILE_SIZE 値を超える";

break;

case 3:

$err_info="ファイルの一部だけアップロードされた";

break;

case 4:

$err_info="ファイルがアップロードされませんでした";

break;

case 6:

$err_info="一時フォルダが見つかりません";

break;

case 7:

$err_info="ファイルの書き込みに失敗した";

break;

default:

$err_info="不明なアップロードエラー";

break;

}

continue($err_info);

}

//ファイルのアップロードタイプが合法的かどうかを判断

if(!in_array($up_info['type’][$i],$typelist)){

continue('ファイルタイプエラー!’.$up_info['type’][$i]);

}

//アップロードファイルサイズをフィルター

if($up_info['size’][$i]>1000000){

continue('文件大小超过1000000’);

}

//アップロードファイル名を取り扱う

$exten_name=pathinfo($up_info['name’][$i],PATHINFO_EXTENSION);

do{

$main_name=date('YmHis’.’–'.rand(100,99999));

$new_name=$main_name.’.’.$exten_name;

}while(file_exists($to_path.’/’.$new_name));

//ファイルのアップロードかどうかを判断

if(is_uploaded_file($up_info['tmp_name’][$i])){

if(move_uploaded_file($up_info['tmp_name’][$i],$ob_path.’/’.$new_name)){

// echo 'ファルが正常にアップロードされた!’;
$img[]=$new_name;

}else{

echo 'アップロードファイルの移動に失敗した!’;

}

}else{

echo 'ファイルがアップロードされません件’;

}

}
return $img;
}

<form action="" enctype="multipart/form-data" method="post"><input name="MAX_FILE_SIZE" type="hidden" value="" />

<input name="pic[]" type="file" />

<input name="pic[]" type="file" />

<input name="pic[]" type="file" />

<input name="pic[]" type="file" />

<input type="submit" value="upload" />

</form>

PHP

Posted by arkgame