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

问题描述 投票:1回答:2

我有一个用户可以上传音频文件。我想在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,但问题已经存在。

我该如何验证呢?

php validation laravel-5.4
2个回答
0
投票

用这个:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.