don*_*ona 5 php validation .htaccess image laravel
我的 Laravel 应用无法验证上传的图片。它返回此错误消息:
无法猜测 mime 类型,因为没有可用的猜测器(您是否启用了 php_fileinfo 扩展?)

我知道在 php.ini 启用 php_fileinfo.dll/php_fileinfo.so 可以修复它。但我无权访问远程服务器的 php.ini 文件。
所以我想还有其他方法可以启用它吗?如何?也许我可以使用 PHP 的ini_set()方法?我尝试使用它,例如:
ini_set('extension', 'php_fileinfo.so');
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
我还读到您可以使用 .htaccess 文件覆盖 php.ini 设置。但是如何?
作为 Laravel 的默认值,我的 .htaccess 文件是:
<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>
Run Code Online (Sandbox Code Playgroud)
你应该如何把这些额外的东西放在那里?
php.ini在目录的根文件夹中创建自己的文件。
例如,如果您要在服务器上进行更改,那么它应该位于 public.html 文件夹内。
创建文件名 php.ini 它将覆盖设置。只需在文件中添加
extension=php_fileinfo.dll
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您使用的是 WHM,请转到 Easy Apache,搜索 fileinfo(在搜索字段中),然后启用它(我找到了php5.5,php5.6和php.7.0.
然后单击“审阅”左侧选项卡。
然后点击配置,就完成了。它对我有用(我花了 3 个小时尝试安装/启用文件信息)
如果您只想上传图像,那么它可能会对您有所帮助。
$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
}
Run Code Online (Sandbox Code Playgroud)
如果上面的代码不起作用,那么它可能会帮助你 -->> https://github.com/thephpleague/flysystem/commit/0ec96b1104e57bfcf0e40d6169c8e203b7942b34