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を使用し、通常は /path/to/magic.mime のようなマジック データベース ファイルの名前がfinfo必要です。magic_fileこの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 に答える