Laravel 5 - 验证MIME类型

20

我有一个上传器,如果不使用规则就能正常工作,但是当我创建规则时,会出现以下错误:

LogicException in MimeTypeGuesser.php line 127:
Unable to guess the mime type as no guessers are available 
(Did you enable the php_fileinfo extension?)

我的文章请求规则

/**
 * Get the validation rules that apply to the request.
 *
 * @return array
 */
public function rules()
{
    return [

        'Image' => 'required|mimes:jpeg'

    ];
}

我的表格

{!! Form::open(['url' => 'blog', 'files'=> true]) !!}
    <div class="form-group">
    {!! Form::label('Image', 'Upload:') !!}
    {!! Form::file('Image', null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
    {!! Form::submit('Submit', ['class' => 'btn btn-primary form-control']) !!}
</div>  
{!! Form::close() !!}
3个回答

55

您应该在php.ini中启用以下行,然后重新启动apache

extension=php_fileinfo.dll

启用只需取消您的php.ini文件中的一行注释

即,从这个;extension=php_fileinfo.dllextension=php_fileinfo.dll


3
如果在某些环境下无法启用扩展,该怎么办? - Gnagy
2
在我的PHP 7.0 MAMP(Windows)安装中,这一行甚至不存在于php.ini中。我添加了它,然后它就起作用了。 - Vahid Amiri
1
默认情况下,它在托管中启用了吗? - Maulik Anand
大多数情况下它不会。 - Sulthan Allaudeen

-2

我也遇到了同样的问题,但是没有出现extension=php_fileinfo.dll的问题。我改变了PHP版本,问题得到了解决。


-4
如果您的php.ini文件中没有extension=php_fileinfo.dll,不用担心,只需在其中添加此行即可。祝好运!

也许解释一下为什么这是问题所有者的解决方案。 - Davy de Vries

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接