2010-06-19 25 views
7

làm thế nào để kiểm tra xem tập tin là hình ảnh hoặc loại video trong phiên bản php 5.2.9làm thế nào để kiểm tra xem tập tin là hình ảnh hoặc loại video trong phiên bản php 5.2.9?

+0

thể trùng lặp của [PHP làm thế nào tôi có thể kiểm tra nếu một file là mp3 hoặc file ảnh] (http://stackoverflow.com/questions/2006632/php-how-can-i-check-if-a-file-is-mp3-or-image-file) - mặc dù tiêu đề câu hỏi là một câu trả lời tốt cho các câu trả lời được đưa ra có loại tập tin độc lập – Gordon

Trả lời

3

Bạn có thể kiểm tra kiểu MIME sử dụng Ví dụ finfo_file function

từ trang trợ giúp

<?php 
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension 
foreach (glob("*") as $filename) { 
    echo finfo_file($finfo, $filename) . "\n"; 
} 
finfo_close($finfo); 
?> 

EDIT : sau khi kiểm tra tốt hơn câu hỏi của bạn, điều này sẽ không hoạt động, các chức năng finfo yêu cầu PHP 5.3.0

14
$mime = mime_content_type($file); 
if(strstr($mime, "video/")){ 
    // this code for video 
}else if(strstr($mime, "image/")){ 
    // this code for image 
} 

Nên hoạt động với hầu hết các phạm vi tệp.

6

Xem câu trả lời của tôi để

Ví dụ Mã

function getMimeType($filename) 
{ 
    $mimetype = false; 
    if(function_exists('finfo_fopen')) { 
     // open with FileInfo 
    } elseif(function_exists('getimagesize')) { 
     // open with GD 
    } elseif(function_exists('exif_imagetype')) { 
     // open with EXIF 
    } elseif(function_exists('mime_content_type')) { 
     $mimetype = mime_content_type($filename); 
    } 
    return $mimetype; 
} 
+0

+1 đây là giải pháp tốt nhất và nền tảng độc lập nhất. –

1
if(isset($_FILES['my_file'])) { 
$mime = $_FILES['my_file']['type']; 
if(strstr($mime, "video/")){ 
$filetype = "video"; 
}else if(strstr($mime, "image/")){ 
$filetype = "image"; 
}else if(strstr($mime, "audio/")){ 
$filetype = "audio"; 
} 
+2

Trong khi mã này có thể trả lời câu hỏi, tốt nhất là giải thích cách giải quyết vấn đề và lý do sử dụng nó. Câu trả lời chỉ có mã không hữu ích trong thời gian dài. –

+0

Câu trả lời này chỉ hoạt động cho các tệp được tải lên. Ngoài ra, [loại ''được cung cấp bởi trình duyệt (nếu có)] (http://php.net/manual/en/features.file-upload.post-method.php) và do đó có thể không đầy đủ đáng tin cậy. – Pang

Các vấn đề liên quan