Lấy mime-type bằng hàm fileinfo trong PHP 5.2.11
Mình chia sẻ cách kiểm tra “ruột” file trong php và version mình sử dùng là 5.2.11. Mình tiến hành như sau 1. Những file cần thiết. Bạn cần phải có database của mime-type. Hãy download tại đây 2. Những điều cần làm a. Copy những file bạn vừa download vào thư mục đặt code web ...
Mình chia sẻ cách kiểm tra “ruột” file trong php và version mình sử dùng là 5.2.11. Mình tiến hành như sau
1. Những file cần thiết.
Bạn cần phải có database của mime-type. Hãy download tại đây
2. Những điều cần làm
a. Copy những file bạn vừa download vào thư mục đặt code web của bạn
b. Cấu hình cho enable php_fileinfo.dll trong file php.ini bằng cách thêm vào hoặc bỏ comment dòng extension=php_fileinfo.dll
c. Đoạn mã dùng để lấy về type của file:
$fileinfo = fileinfo_open(FILEINFO_MIME, 'Đường dẫn đến file magic mà bạn đã download'); $type = fileinfo_file($fileinfo, $file['tmp_name']); echo $type; finfo_close($finfo);
3. Những lỗi có thể gặp.
a. Lỗi 1.
PHP Fatal error: Call to undefined function finfo_open() in C:WebĐồ án của bạn est.php line….
Nguyên nhân:do bạn chưa enable php_fileinfo.dll. Hãy xem cách enable php_fileinfo.dll ở trên
b. Lỗi 2:
[09-May-2010 18:28:57] PHP Warning: finfo_open() [<a href=’function.finfo-open’>function.finfo-open</a>]: Failed to load magic database at ‘(null)’. in C:Web est.php on line 36
[09-May-2010 18:28:57] PHP Warning: finfo_file(): supplied argument is not a valid file_info resource in C:Web est.php on line 37
Nguyên nhân: do bạn truyền sai đường dẫn đến mime-type database. Hãy xem lại mục 2 để khắc phục.
c. Lỗi 3: đây là một lỗi hiếm, vì lỗi này chỉ xảy ra khi chúng ta cài PHP trên môi trường Windows. Giá trị trả về cho biến $type của đoạn code ở mục 2 luôn là “application/x-dpkg”. Nguyên nhân của vấn đề xuất phát từ file magic.mime có chứa ký tự “!”. Trên môi trường Windows trả về 1 match nếu gặp những điều kiện bắt đầu với “!”. Chúng ta phải thay thế những điều kiện bắt đầu với “!” bằng “!”.
Ví dụ như:
0 string !<arch>
debian application/x-dpkg
đổi thành:
0 string !<arch>
debian application/x-dpkg
Hết. Happy coding