2014-02-14 54 views
0

我在嘗試修復圖片上傳。 但我有一些麻煩檢查,如果該文件是一張圖片。 在我使用eregi_replace之前,但該函數已被棄用,現在我想知道是否可以使用preg_match並檢查數組中的匹配項,或者我應該如何執行此操作?圖片上傳preg_match檢查文件

$name = "Picture.jpg"; 
    $picture = array("/^JPG/", "/^PNG/", "/^GIF/", "/^gif/", "/^png/", "/^jpg/", "/^JPEG/", "/^jpeg/"); 
    $something = preg_match($picture, $name, $matches, PREG_OFFSET_CAPTURE, 3); 
    print_r($something); 

像那樣或什麼?我沒有線索,希望你能幫助我!

+0

我會檢查這個答案,而不是檢查實際的MIME類型/ fileinfo更好http://stackoverflow.com/questions/310714/how-to-check-file-types-of-uploaded-files- in-php – jtheman

+1

這是檢查上傳的「圖像性」的可怕方式。文件擴展名可方便快速識別,但它們完全無法僞造。 您應該使用更好的方法,例如用於MIME類型確定的'fileinfo'。 –

回答

1

象下面這樣:

$name = "Picture.jpg"; 

if (preg_match('/\.(jpe?g|png|gif)$/i', $name, $matches)) { 
    //... 
} 

但要注意這只是檢查文件名,如果你要檢查它的真實圖像,你應該驗證實際的MIME類型。