【问题标题】:How to validate file format in Laravel 5.4?如何在 Laravel 5.4 中验证文件格式?
【发布时间】:2018-05-30 21:06:27
【问题描述】:

我有一个供用户上传音频文件的来源。我想在Laravel 中使用validation 来检查文件格式,因为文件必须是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,但问题已经存在。

如何验证?

【问题讨论】:

  • 您是使用 Apache 还是 Nginx 作为网络服务器?
  • @RDev 我用的是 Apache

标签: php validation laravel-5.4


【解决方案1】:

使用这个:

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

【讨论】:

  • 我测试了您的解决方案,但它不允许上传任何文件,甚至是扩展名为 m4a 的文件。我的测试文件的 mimetype 是 audio/x-m4a。
【解决方案2】:

你可以在官方Apache list of mime types看到 m4a 文件格式具有关联的音频/mp4 mime 类型。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-09
    • 2018-01-29
    • 2017-12-17
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 2018-12-22
    相关资源
    最近更新 更多