2013-02-11 23 views
11

używam mime_content_type() funkcji do przesyłania plików, localhost to działa poprawnie, ale pokazać jakiś błąd w pliku internetowymmime_content_type() funkcja nie działa

Fatal error: Call to undefined function mime_content_type()

+4

http://www.php.net/manual/en/fileinfo.installation.php -> przeczytaj pierwszą linię pierwszego komentarza. –

+1

Należy również zauważyć, że funkcja jest przestarzała: http://php.net/mime_content_type Zamiast tego należy użyć http://www.php.net/manual/en/ref.fileinfo.php. –

+0

Przed PHP 5.3.0, mime_content_type() było dostępne tylko przez rozszerzenie pliku PECL - jakiej wersji PHP używasz? –

Odpowiedz

11

Musisz mieć mime_magic rozszerzenie dalej. Sprawdź swoje php.ini i zajrzyj do phpinfo(). Nawiasem mówiąc, ta funkcja została uznana za przestarzałą, ponieważ rozszerzenie PECL Fileinfo zapewnia tę samą funkcjonalność (i więcej) w znacznie czystszy sposób.

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

Aktualizacja:

mime_content_type() nie jest już przestarzała, php7 posiada wsparcie dla tej funkcji już teraz.

Wcześniej wersja moją odpowiedź:

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 jest rozszerzeniem pecl, więc nie będzie działać, jeśli rozszerzenie nie jest zainstalowane – Okneloper

+1

@Okneloper Już nie, quoating z dokumentu instalacyjnego "' To rozszerzenie jest włączone domyślnie od PHP 5.3.0. Przed tym czasem, fileinfo było rozszerzenie PECL, ale nie jest już tam utrzymywane "http://php.net/manual/en/fileinfo.installation.php – Rao

+0

mimo to instalacja 5.6 Testowałem go podając" Błąd krytyczny: klasa "finfo" nie znaleźć " – Okneloper

0

Prawdopodobnie brakuje \ php \ dodatki plik \ magic.mime.