Php Allowable上传文件扩展名

时间:2012-04-09 07:57:00

标签: php

  

可能重复:
  How can I only allow certain filetypes on upload in php?

我正在学习PHp和Mysql。我想创建一个只允许用户上传的特定文件扩展名的功能。像..

$whitelist = array("jpg","jpeg","gif","png","bmp","pdf" );

那么我如何用php检查这个特定的文件扩展名。有谁能告诉我.. 谢谢。

3 个答案:

答案 0 :(得分:2)

这是一个选项:

function checkFormat($source){
    $whitelist = array("jpg","jpeg","gif","png","bmp","pdf" );
    $type="";
    if(version_compare('4.3.0', PHP_VERSION) > 0){
        $type=mime_content_type($source['tmp_name']);
    }else{
        $type=$source['type'];
    }

    return (in_array($type, $whitelist));
}

问候!

答案 1 :(得分:2)

使用pathinfo­Docs

获取上传文件的文件扩展名
$extension = pathinfo($filename, PATHINFO_EXTENSION);

然后检查允许的exntsions白名单

$allowedExtensions = array("jpg","jpeg","gif","png","bmp","pdf");
$isAllowed = in_array($extension, $allowedExtensions);

也许您需要修改扩展识别功能以获得一些特殊扩展,例如tar.gz,但这应该可以解决问题。

编辑:如上所述here,您不应该检查文件扩展名,而是检查mime-type。

答案 2 :(得分:0)

看这里:  http://www.w3schools.com/php/php_file_upload.asp

它提供了一个示例,说明了如何执行此操作。