Laravel 4文件上传错误

时间:2013-10-28 07:50:14

标签: php laravel laravel-4

我有一个文件上传表单,我想使用验证器。

$roles = array(
    'title' => 'required|max:128',
    'description' => 'required|max:2800',
    'picture' => 'mimes:jpeg,bmp,png'
);

我的问题是,如果我尝试上传图片,则会收到此错误:finfo::finfo(): Failed to load magic database at ''$_SERVER['MAGIC']设置为/usr/share/misc/magic ...所以我不知道为什么会抛出此错误。但如果我注释掉图片验证行,并且我选择了一张照片作为表格,我也会收到错误:Serialization of 'Symfony\Component\HttpFoundation\File\UploadedFile' is not allowed
有人可以告诉我该怎么办?

更新

$finfo = new finfo(FILEINFO_MIME_TYPE);
$filename = public_path() . '/images/test.png';
var_dump($finfo->file($filename));

效果很好string(9) "image/png"。但在验证中仍然很糟糕。

1 个答案:

答案 0 :(得分:0)

Laravel使用finfo进行文件验证,finfo需要magic_file魔术数据库文件的名称,通常类似于/path/to/magic.mime。在php.ini中,请确保您拥有类似的内容,并指出正确的资源

[mime_magic]
mime_magic.magicfile = "D:\xampp\php\extras\magic.mime"

这是xampp安装中文件的路径。它可能会因您的OS而异,如果未指定,则使用MAGIC环境变量,有关详细信息,请访问fileinfo。此外,this可能会对您有所帮助。它与Laravel但与php安装无关。