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>