2010-08-26 33 views
62

Siempre que trato de obtener el tipo de contenido MIME de php, se hace eco de:PHP fileinfo es función no definida

Fatal error: Class 'finfo' not found in /home/jobynadel/finadel.com/video/finfo.php on line 4

o

Fatal error: Call to undefined function finfo_open in /home/jobynadel/finadel.com/video/finfo.php on line 4

No puedo entenderlo!

El código que estoy utilizando es:

$file_info = new finfo(FILEINFO_MIME_TYPE); 
// See constant value http://php.net/manual/en/fileinfo.constants.php#113687 
$mime_type = $file_info->buffer(file_get_contents($file)); 
+0

No es un problema con php o laravel, probablemente use un código de espacio de nombres que significa que necesita importar la clase

Respuesta

94

Tenga una mirada en su archivo php.ini y compruebe que el fileinfo.so o php_fileinfo.dll se activa (dependiendo de la plataforma y versión).

Debe haber una línea similar a

extension=fileinfo.so 

en su archivo php.ini

+0

Gracias por el consejo. – Harsha

+0

'$ mime_type' devuelve una cadena que contiene' ; charset = ', así que para obtener el tipo de mime de archivo real he modificado la pregunta. –

+0

Uso [esta esencia] (https://gist.github.com/Llewellynvdm/74be373357e131b8775a7582c3de508b) que se puede actualizar con el script de construcción que también se encuentra aquí. – Llewellyn

20

¿Qué versión de PHP tiene usted? PHP 5.3.0 y posteriores tienen Fileinfo integrado, pero en Windows debe habilitarlo manualmente en su php.ini. Puede encontrar más información in the documentation.

9

Si está utilizando WAMP, vaya a Extensiones de PHP y enrolle PHP_fileinfo y reinicie todos los servidores.

27

Si usando XAMPP, habilita extension=php_fileinfo.dll en php.ini

5

los usuarios de Windows: acaba de editar php.ini y descomentar esta línea:

extension=php_fileinfo.dll 

es decir, quite el punto y coma que precede a partir

;extension=php_fileinfo.dll 

Recuerde reiniciar Apache para el nuevo php.ini para tener efecto.

1

Para aquellos que han tenido que trabajar muy bien, pero entonces aparece este error:

Algunos proveedores de alojamiento (por ejemplo, Dreamhost) permiten a los clientes anulan la configuración PHP de forma predeterminada en un archivo de configuración, a menudo con un camino algo como:

~/.php/5.4/phprc

Ese número de versión en el camino puede ser un problema si actualiza PHP (o se actualizó en su nombre). Cualquier configuración personalizada de la versión anterior, incluida una que permita la extensión fileinfo, faltará en la versión más nueva. Por lo general, solo puede copiar el archivo de configuración en el nuevo directorio de configuración apropiado y reiniciar el servidor.

+0

https://help.dreamhost.com/hc/en-us/articles/214205858-How-do-I-enable-fileinfo- – Blazemonger

1

tenía este mismo problema con PHP.I hizo los siguientes pasos:

- make sure that the fileinfo extension is already installed if you are using < PHP 5.3.0. 

- Then you have to add in php.ini ;extension=fileinfo.so or 
    ;extension=php_fileinfo.dll 

- If you want to uncomment remove the semicolon(;) 
    extension=fileinfo.so or extension=php_fileinfo.dll 

A continuación, guardar y reiniciar su servidor web.

Cuestiones relacionadas