2013-02-11 30 views
11

tôi đang sử dụng mime_content_type() chức năng để tải lên tập tin, localhost cho nó hoạt động một cách chính xác nhưng nó hiển thị một số lỗi trong tập tin trực tuyếnmime_content_type() chức năng không làm việc

Fatal error: Call to undefined function mime_content_type()

+4

http://www.php.net/manual/en/fileinfo.installation.php -> đọc dòng đầu tiên của nhận xét đầu tiên. –

+1

Cũng lưu ý rằng chức năng không được chấp nhận: http://php.net/mime_content_type Sử dụng http://www.php.net/manual/en/ref.fileinfo.php để thay thế. –

+0

Trước PHP 5.3.0, mime_content_type() chỉ có sẵn thông qua phần mở rộng tệp tin PECL - bạn đang chạy phiên bản PHP nào? –

Trả lời

11

Bạn phải có phần mở rộng mime_magic trên. Kiểm tra php.ini của bạn và tìm trong phpinfo(). Bằng cách này chức năng này đã không được chấp nhận như phần mở rộng PECL Fileinfo cung cấp các chức năng tương tự (và nhiều hơn nữa) một cách sạch hơn nhiều.

Windows users must include the bundled php_fileinfo.dll DLL file in php.ini to enable this extension.

The libmagic library is bundled with PHP, but includes PHP specific changes. A patch against libmagic named libmagic.patch is maintained and may be found within the PHP fileinfo extensions source.

Read more

10

Cập nhật:

mime_content_type() không còn bị phản đối, php7 đã hỗ trợ cho chức năng này ngay bây giờ.

Đầu phiên bản của câu trả lời của tôi:

mime_content_type() is deprecated, probably because [fileinfo][1] can give you those information about the file and more.

You can use finfo() like shown below,

function _mime_content_type($filename) { 
    $result = new finfo(); 

    if (is_resource($result) === true) { 
     return $result->file($filename, FILEINFO_MIME_TYPE); 
    } 

    return false; 
} 

Ref: https://stackoverflow.com/a/1263977/1161412

[1]: http://php.net/manual/en/class.finfo.php

+2

finfo là một phần mở rộng pecl, do đó, sẽ không hoạt động nếu phần mở rộng không được cài đặt – Okneloper

+1

@Okneloper Không còn nữa, quoating từ doc cài đặt "' Phần mở rộng này được kích hoạt mặc định như của PHP 5.3.0. Trước đây, fileinfo là một phần mở rộng PECL nhưng không còn được duy trì ở đó nữa. "http://php.net/manual/en/fileinfo.installation.php – Rao

+0

chưa cài đặt 5.6 Tôi đã thử nghiệm nó trên đã cho tôi một" lỗi nghiêm trọng: lớp 'finfo' không tìm thấy " – Okneloper

0

có khả năng thiếu \ php \ extras tập tin \ magic.mime.

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