【问题标题】:LARAVEL: The file must be a file of type: mpgaLARAVEL:文件必须是文件类型:mpga
【发布时间】:2017-12-19 14:35:52
【问题描述】:

我正在尝试上传音频/mp3 文档 (15mb),它会生成以下错误“文件必须是文件类型:mpga”。当我上传其他文档音频/mp3 (7mb) 时,没有出现错误。

验证中:

$validator = Validator::make($request->all(), [
                    'name' => 'required|string|max:255',
                    'file' => 'required|mimes:mpga'
                ]);

在 php.ini 中

upload_max_filesize=25M
max_file_uploads=25
post_max_size=25M

关于两个文件的更多信息:

第一个文档(错误)

Illuminate\Http\UploadedFile {#414
  -test: false
  -originalName: "bondad (1).mp3"
  -mimeType: "audio/mp3"
  -size: 4734618
  -error: 0
  #hashName: null
  path: "C:\xampp\tmp"
  filename: "php208F.tmp"
  basename: "php208F.tmp"
  pathname: "C:\xampp\tmp\php208F.tmp"
  extension: "tmp"
  realPath: "C:\xampp\tmp\php208F.tmp"
  aTime: 2017-12-19 13:53:30
  mTime: 2017-12-19 13:53:30
  cTime: 2017-12-19 13:53:30
  inode: 0
  size: 4734618
  perms: 0100666
  owner: 0
  group: 0
  type: "file"
  writable: true
  readable: true
  executable: false
  file: true
  dir: false
  link: false
  linkTarget: "C:\xampp\tmp\php208F.tmp"
}

第二个文档(好的)

-test: false
  -originalName: "10 minutos de meditacion respirando.mp3"
  -mimeType: "audio/mp3"
  -size: 14418620
  -error: 0
  #hashName: null
  path: "C:\xampp\tmp"
  filename: "phpBFBB.tmp"
  basename: "phpBFBB.tmp"
  pathname: "C:\xampp\tmp\phpBFBB.tmp"
  extension: "tmp"
  realPath: "C:\xampp\tmp\phpBFBB.tmp"
  aTime: 2017-12-19 13:55:16
  mTime: 2017-12-19 13:55:16
  cTime: 2017-12-19 13:55:16
  inode: 0
  size: 14418620
  perms: 0100666
  owner: 0
  group: 0
  type: "file"
  writable: true
  readable: true
  executable: false
  file: true
  dir: false
  link: false
  linkTarget: "C:\xampp\tmp\phpBFBB.tmp"

【问题讨论】:

标签: laravel laravel-5 laravel-validation


【解决方案1】:

这可能取决于 mp3 文件中的确切内容。我认为更好的解决方案可能是使用:

mimes:mp3

代替:

mimes:mpga

或者你可以像这样组合多个哑剧:

mimes:mpga,mp3

【讨论】:

  • 或者更好,mimes:mp3,mpga
  • 我发现 mimetype 是:“application/octet-stream”,我怎么不能验证这个类型?
  • @AngelPrieto 还有mimetypes 验证规则,因此您可以使用它来代替,例如:'mimetypes:application/octet-stream,audio/mpeg`
【解决方案2】:

你可以使用mimetypes验证规则来匹配mime类型,这里是一个例子:

$validator = Validator::make($request->all(), [
    'name' => 'required|string|max:255',
    'file' => 'required|mimetypes:audio/mp3,application/octet-stream'
]);

希望能帮到你

【讨论】:

    猜你喜欢
    • 2016-02-17
    • 1970-01-01
    • 2015-09-13
    • 2018-05-07
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2016-08-01
    • 2018-07-13
    相关资源
    最近更新 更多