如何在Laravel 5.4中验证文件格式?

时间:2017-12-17 07:04:09

标签: php validation laravel-5.4

我有一个用户可以上传音频文件。我想在validation中使用Laravel来检查文件格式,因为该文件必须是m4a

我使用以下代码进行验证,但它不允许上传任何文件,即使是m4a个文件。

   $this->validate(request(),
            [   'title' => 'required',
                'body' => 'required',
                'category' => 'required',
                'audio' => 'mimetypes:audio/x-m4a'
            ],
            [   'title.required'    => 'title is missed',
                'body.required'     => 'body is missed',
                'category.required' => 'category is missed',
                'audio.mimetypes' => 'the file format must be m4a'
            ]);

我还使用mimes:audio/x-m4amimes:audio/m4a代替mimetypes:audio/x-m4a,但问题已经存在。

我该如何验证?

2 个答案:

答案 0 :(得分:0)

使用此:

  [
      'title' => 'required',
      'body' => 'required',
      'category' => 'required',
      'audio' => 'mimetypes:audio/mp4|mimes:m4a'
  ]

答案 1 :(得分:0)

正如您在官方Apache list of mime types中所看到的 m4a文件格式与audio / mp4 mime类型相关联。

首先,查看你的mime.conf并检查包含audio / mp4的行是否被注释,是否取消注释并重新启动apache。

如果它不存在,您可以使用此指令将其添加到该文件或.htaccess文件中:AddType audio/mp4 .m4a .mp4

如果您确定文件的mime类型是x-m4a,请将其添加到.htaccess