cách Native để có được những Mimetype:
Đối với PHP < 5.3 sử dụng mime_content_type()
Đối với PHP> 5.3 sử dụng finfo_fopen()
Alternatives để có được Mimetype là exif_imagetype và getimagesize, nhưng những dựa vào có phù hợp libs được cài đặt. Ngoài ra, họ có thể sẽ chỉ trả về hình ảnh mimetypes, thay vì toàn bộ danh sách được đưa ra trong magic.mime.
Trong khi mime_content_type
bị xóa khỏi PHP5.3, nó hoạt động tốt hơn bên dưới phiên bản đó. E_STRICT
thậm chí sẽ không đưa ra thông báo về việc bị từ chối. Nếu bạn không muốn bận tâm về những gì có sẵn trên hệ thống của mình, chỉ cần bọc tất cả bốn hàm vào một phương thức proxy ủy quyền cuộc gọi hàm tới bất kỳ chức năng nào có sẵn, ví dụ:
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;
}
Nguồn
2013-03-14 11:37:48
có thể trùng lặp với [kiểm tra loại tệp được tải lên bằng PHP] (http://stackoverflow.com/questions/6755192/uploaded-file-type-check-by-php) và [Chuỗi bảo mật có nội dung tải lên] (http://stackoverflow.com/questions/11061355/security-threats-with-uploads) – deceze
http://stackoverflow.com/questions/173868/how-to-extract-a-file-extension-in-php –
@Pramod Vừa kiểm tra phần mở rộng tệp chính xác * không * đủ. – deceze