Estoy validando una solicitud como una imagen, pero falla diciendo:
"No se puede adivinar el tipo MIME porque no hay adivinadores disponibles (¿habilitó la extensión php_fileinfo?)".
En php.ini
no tengo una extension=php_fileinfo
, pero tengo una línea sin comentar extension=fileinfo
(veo que Lumen puso esta y otras dependencias sin 'php_'
). También intento agregar extension=php_fileinfo
, pero cuando reinicio Apache desde XAMPP se bloquea porque no encuentra esa dependencia. ¿Qué tengo que hacer?
El código:
function updateProfilePicture(Request $request) { $this->validate($request, [ 'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048' ]); //...
La sección php.ini donde la dependencia fileinfo es:
;;;;;;;;;;;;;;;;;;;;;; ; Dynamic Extensions ; ;;;;;;;;;;;;;;;;;;;;;; ; If you wish to have an extension loaded automatically, use the following ; syntax: ; ; extension=modulename ; ; For example: ; ; extension=mysqli ; ; When the extension library to load is not located in the default extension ; directory, You may specify an absolute path to the library file: ; ; extension=/path/to/extension/mysqli.so ; ; Note : The syntax used in previous PHP versions ('extension=<ext>.so' and ; 'extension='php_<ext>.dll') is supported for legacy reasons and may be ; deprecated in a future PHP major version. So, when it is possible, please ; move to the new ('extension=<ext>) syntax. ; ; Notes for Windows environments : ; ; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+) ; extension folders as well as the separate PECL DLL download (PHP 5+). ; Be sure to appropriately set the extension_dir directive. ; extension=bz2 extension=curl extension=fileinfo extension=gd2 extension=gettext
¿Quizás está relacionado con ese descargo de responsabilidad sobre cómo configurar las directivas de dependencias? (No estoy seguro porque extension=fileinfo
ya estaba en el archivo de manera predeterminada) Estoy usando Windows 10 y encontré el archivo en C:\xampp\php\ext\php_fileinfo.dll
Encontré el problema. Tenía otro archivo php.ini con la línea comentada ;extension=fileinfo
en C:\php\php.ini
(el que estaba abriendo estaba en C:\xampp\php\php.ini
). ¡Ahora reinicié Apache y está funcionando!