如何在php中启用php_fileinfo扩展?
我的Laravel应用无法验证上载的图像。它返回以下错误消息: 无法猜测mime类型,因为没有可用的猜测器(您知道吗 启用php_fileinfo扩展?) 我知道启用php_fileinfo.dll/php_fileinfo.so at php.ini可以修复它。但是我无法访问我的远程服务器的php.ini文件 所以我想有没有其他方法来实现它?怎么做?也许我可以使用PHP的如何在php中启用php_fileinfo扩展?,php,image,.htaccess,validation,laravel,Php,Image,.htaccess,Validation,Laravel,我的Laravel应用无法验证上载的图像。它返回以下错误消息: 无法猜测mime类型,因为没有可用的猜测器(您知道吗 启用php_fileinfo扩展?) 我知道启用php_fileinfo.dll/php_fileinfo.so at php.ini可以修复它。但是我无法访问我的远程服务器的php.ini文件 所以我想有没有其他方法来实现它?怎么做?也许我可以使用PHP的ini\u set()方法?我试着像这样使用它: ini_set('extension', 'php_fileinfo.s
ini\u set()
方法?我试着像这样使用它:
ini_set('extension', 'php_fileinfo.so');
但它不起作用
我还了解到,您可以使用.htaccess文件覆盖php.ini设置。但是怎么做呢
作为Laravel的默认设置,my.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>
选项-多视图
重新启动发动机
#重定向尾部斜杠。。。
重写规则^(.*)/$/$1[L,R=301]
#处理前控制器。。。
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^index.php[L]
您应该如何在其中添加这些附加内容?如果您只想上传图像,那么它可能会对您有所帮助
$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
}
如果上面的代码不起作用,那么它可能会帮助您-->>在根目录下创建一个
.htaccess
文件,然后执行此操作
php_value extension=php_fileinfo.dll
或
如果你有cpanel,就去 选择PHP版本 并搜索扩展名 文件信息
检查一下就可以了。在目录的根文件夹中创建自己的
php.ini
文件
例如,如果您正在服务器上进行更改,那么它应该位于public.html文件夹中
创建文件名php.ini,它将覆盖设置。
只需在文件中添加
extension=php_fileinfo.dll
选项-多视图
重新启动发动机
#重定向尾部斜杠。。。
重写规则^(.*)/$/$1[L,R=301]
#处理前控制器。。。
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^index.php[L]
suPHP\u ConfigPath/home/username/public\u html/子文件夹
子文件夹是我希望为我的应用程序提供服务的laravel项目。
我的子文件夹根文件夹中的php.ini文件&对于enable PHPFileinfo,我在php.ini文件中编写这些代码
extension=fileinfo.so
扩展=pdo.so
extension=pdo_.so
如果您正在使用WHM,请转到Easy Apache,搜索fileinfo(在搜索字段中),然后启用它(我在php5.5
、php5.6
和php.7.0
中找到)
然后单击“查看”左侧选项卡
然后单击provision,然后单击done。它对我有效(我花了3个小时尝试安装/启用fileinfo)一些共享主机仍然允许使用私有php.ini文件进行此类操作。但是,大多数主机不允许,如果这适用于您的主机,您需要联系您的支持团队,看看他们是否会启用它。在大多数情况下,他们不会启用,因为更改将影响所有用户,并且可能会打乱其他人的应用程序。我尝试了这个方法,并进行了验证在我的.htcacces uder Laravel的“public”目录中没有。它不起作用:服务器返回“500 Internal server Error”。这在你的目录中起作用了吗?你能详细介绍一下.htaccess文件吗?
extension=php_fileinfo.dll
<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 mod_suphp.c>
suPHP_ConfigPath /home/username/public_html/subfolder
</IfModule>
</IfModule>
subfolder is the laravel project where I want to serve my application.
php.ini file in my subfolder's root folder & for enable PHPFileinfo I write those code in php.ini file
extension=fileinfo.so
extension=pdo.so
extension=pdo_mysql.so