複数ファイルのアップロードの際の拡張子
複数のファイルを一度にアップロードするプログラムを作成しています。
同じ拡張子のファイルは、問題なくアップロードすることができましたが
異なる拡張子のファイルをアップロードすると
全てのファイルが最後にアップロードしたファイルと同じ拡張子になってしまいます。
拡張子を$kakuに入れる位置が間違っているような気もするのですが
移動させてみましたが結果は同じでした。
アドバイス頂けると助かります。
よろしくお願い致します。
//拡張子チェック
if(strlen($_FILES["att"]["name"])>0){
foreach($_FILES["att"]["error"] as $key => $error_a){
if($error_a == UPLOAD_ERR_OK){
$att_na = $_FILES['att']['name'][$key]; //ローカルファイル名
$att_tmp = $_FILES["att"]["tmp_name"][$key]; //テンポラリファイルの名前
$att_size = $_FILES["att"]["size"][$key]; //ファイルサイズ
$att_type = $_FILES["att"]["type"][$key]; //ファイルタイプ
if(strlen($att_na)>0) {
if(is_uploaded_file($att_tmp)) {
if(strlen($att_size)==0) {$error = "ファイルが不正です";}
if($att_size>10000000) {$error = "ファイルのサイズが大きすぎます({$att_size}バイト)";}
//ファイルタイプのチェック
if($att_type=="application/msword") {$kaku="doc";}
if($att_type=="application/vnd.ms-excel") {$kaku="xls";}
if($att_type=="application/vnd.ms-powerpoint") {$kaku="ppt";}
if($att_type=="application/pdf") {$kaku="pdf";}
if($att_type=="text/plain") {$kaku="txt";}
if($att_type=="application/zip") {$kaku="zip";}
if($att_type=="image/gif") {$kaku="gif";}
if($att_type=="image/jpeg") {$kaku="jpg";}
if($kaku==""){$error="添付できないファイル形式です";}
}
}
}
}
}
(略)
//登録
foreach($_FILES["att"]["error"] as $key => $error_a){
if($error_a == UPLOAD_ERR_OK){
$att_na = $_FILES["att"]["name"][$key];
$att_tmp = $_FILES["att"]["tmp_name"][$key];
$att_type = $_FILES["att"]["type"][$key];
if(strlen($att_na)>0) {
list($att_nam,$k) = explode(".",$att_na);
$ymdhis = date("YmdHis");
$att_no++;
$att_name = "{$my_no}-{$log_no}-{$att_no}-{$ymdhis}.{$kaku}";
$att_name_a = "{$att_nam}-{$my_no}-{$log_no}-{$att_no}-{$ymdhis}.{$kaku}";
move_uploaded_file($att_tmp, "$att_path/$att_name");
$att_name_ar[] = $att_name;
$att_name_im = implode(",",$att_name_ar);
$att_name_aar[] = $att_name_a;
$att_name_aim = implode(",",$att_name_aar);
}
}
}
お礼
ありがとうございます。 さっそくみてみますー。