phpで複数のファイルをアップロードするサンプルプログラム2
PHPコード:
//アップロードファイルの情報を取得
$up_info=$_FILES;
$ob_path="..\system";
$typelist=array(“image/gif","image/jpeg","image/pjpeg","image/png");
//アップロードファルの種類を定義
foreach($up_info as $k_name=>$value){
//foreachで複数ファルのアップロードを処理
//ファルアップロードエラーかどうかを判断
if($up_info[$k_name]['error’]>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[$k_name]['type’],$typelist)){
continue('ファイルタイプエラー!’.$up_info[$k_name]['type’]);
}
//アップロードファイルのサイズをフォルダ
if($up_info[$k_name]['size’]>100000){
echo 'ファイルのサイズ大きすぎる;
continue;
}
/アップロードファイル名処理
$exten_name=pathinfo($up_info[$k_name]['name’],PATHINFO_EXTENSION);
do{
$main_name=date('YmHis’.’–'.rand(100,999));
$new_name=$main_name.’.’.$exten_name;
}while(file_exists($to_path.’/’.$new_name));
//ファイルをアップロードする処理
if(is_uploaded_file($up_info[$k_name]['tmp_name’])){
if(move_uploaded_file($up_info[$k_name]['tmp_name’],$ob_path.’/’.$new_name)){
echo 'ファイルが正常にアップロードされた!’;
}else{
echo 'アップロードファイルの移動に失敗した!’;
}
}else{
echo 'ファイルをアップロードできません’;
}
}
<form action="" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="">
<input type="file" name="pic" /><br><br>
<input type="file" name="text" /><br><br>
<input type="file" name="doc" /><br><br>
<input type="file" name="pdf" /><br><br>
<input type="submit" value="upload"/>
</form>