输入文件类型,仅上传选定的扩展名

时间:2016-02-24 06:14:59

标签: php input

我有php文件上传不同类型的图像文件,如.jpg,.gif很快,但我的问题是,我还需要上传像.doc,.docx和.xlsx等Microsoft office文件的文件,我可以& #39;弄清楚如何使这种东西与这种扩展一起工作,视频和音乐也限制上传。

我目前的代码如下:

功能

function GetExtension($imagetype){
 if(empty($imagetype)) return false;
 switch($imagetype){
   case 'image/bmp': return '.bmp';
   case 'image/gif': return '.gif';
   case 'image/jpeg': return '.jpg';
   case 'image/png': return '.png';
 default: return false;
 }
}

代码流程

if(isset($_POST['submit'])){

    $tmp_file = $_FILES['file_upload']['tmp_name'];
    $target_file = basename($_FILES['file_upload']['name']);
    $imgtype = $_FILES['file_upload']['type'];
    $ext = GetImageExtension($imgtype);
    $imagename = date("d-m-Y")."-".time().$ext;
    $upload_dir = "../images/file/".$imagename;

    if(move_uploaded_file($tmp_file, $upload_dir)){


//// some code here...........

} else {
      $error = $_FILES['file_upload']['error'];
    }


    }

1 个答案:

答案 0 :(得分:1)

您可以获得如下所示的扩展程序:

function GetExtension($imagetype){
 if(empty($imagetype)) return false;
 switch($imagetype){
   case '.bmp': return true;
   case '.gif': return true;
   case '.jpg': return true;
   case '.png': return true;
   case '.doc': return true;
   case '.docx': return true;
   case '.xls': return true;
   case '.xlsx': return true;
   default: return false;
 }
}


....
$path = $_FILES['file_upload']['name'];
$ext = pathinfo($path, PATHINFO_EXTENSION);
$check_ext = GetImageExtension($ext);
if($check_ext) {
    ....
}
....