如何在PHP中启用php_fileinfo扩展?

My Laravel app can't validate uploaded images. It returns this error message:

Unable to guess the mime type as no guessers are available (Did you enable the php_fileinfo extension?)

Laravel error message

I know enabling php_fileinfo.dll/php_fileinfo.so at php.ini fixes it. But I don't have access to my remote server's php.ini file.

So I thought is there any other way to enable it? And how? Maybe I can use PHP's ini_set() methods? I tried using it like:

ini_set('extension', 'php_fileinfo.so');

But it doesn't work.

I also read you can override php.ini settings using .htaccess files. But how?

As Laravel's default, my .htaccess file is:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

How should you put such additionals in there?

If you only want to upload images then it might help you.

$image_size_info = @getimagesize($filename); //surpress errors(@) if not image
if( empty($image_size_info) ) $mime_type = "";
else $mime_type = @image_type_to_mime_type( $image_size_info[2] );

//safety for all cases:
if( empty($mime_type) ) $mime_type = "";

if(  strpos($mime_type, "image/") === false  )
{
//not an Image !
} 
else 
{
  //proceed file upload
}

If above code doen't work then it might help you -->> https://github.com/thephpleague/flysystem/commit/0ec96b1104e57bfcf0e40d6169c8e203b7942b34

Create a .htaccess file where your root is and then do this

php_value extension=php_fileinfo.dll

or

php_admin_flag extension=php_fileinfo.dll

If you have cpanel just go to

Select PHP Version

and search for the extension

fileinfo

check it and you're good to go.

create own php.ini file in root folder of your directory.

example if you are making changes on a server then it should be inside the public.html folder.

create file name php.ini it will override the settings. just add in the file

extension=php_fileinfo.dll