2012-04-09 7 views
-2

可能な重複ファイルの拡張子をアップロード:
How can I only allow certain filetypes on upload in php?PHPの許容は

を私はPHPとMySQLを学んでいます。ユーザーがアップロードした特定のファイル拡張子のみを許可する関数を作成したい。 Like ..

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

私はどのようにこの特定のファイル拡張子をphpでチェックするのですか?誰でも私に教えてくれますか? ありがとうございます。

+0

http://php.net/pathinfo – hakre

答えて

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)); 
} 

よろしく!

+0

'checkFormat($ _ FILES [" fieldname "])を呼び出す必要があります。 – Stefan

+0

$ sourceは$ _FILE ['file'] ['tmp_name']を意味します。 ? – user1295995

+0

OH!..私は理解しています。 – user1295995

2

一部を取得する機能を認識

$extension = pathinfo($filename, PATHINFO_EXTENSION); 

のようなpathinfo­Docsでアップロードされたファイルのファイル拡張子を取得し、その後

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

は、多分あなたは拡張子を変更する必要が許さexentsionsのホワイトリストに対してチェックtar.gzのような特別な拡張機能がありますが、これはすべきことです。

編集:hereと同じように、ファイルの拡張子はチェックしないでください。ただし、MIMEタイプはチェックしないでください。

+1

忘れてしまいましたが、['pathinfo'](http://php.net/pathinfo); ) – hakre

+0

hakre:あなたは男です! :)私の方法はむしろ「迅速かつ汚れた」; – Stefan