1

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

$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"。但在验证中仍然很糟糕。

4

1 回答 1

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。此外,可能会对您有所帮助。Laravel它与您的php安装无关。

于 2013-10-28T08:52:48.823 回答