Laravel mimes和mimetypes 出错

解决Laravel 5.5中使用文件上传功能时遇到的mimes验证问题,通过修改验证规则解决了无法正确识别文件类型的错误。

今天用laravel做验证的时候,出现个问题,一开始以为是框架的bug,后面在外网上找到答案。
laravel版本是5.5的 。

出现问题的过程:

blade模板:

<form class="form-horizontal" action="{{url('lesson/saveCourseware')}}" method="post" enctype="multipart/form-data" role="form">
    <input type="file" id="document" name="document" class="btn btn-primary"/>



后端validation代码:

$request->validate([
    'document' => 'required|file|mimes:ppt,pptx,doc,docx,pdf,xls,xlsx|max:204800',
]);



我上传的是这几种内省里面的一种,但是一直报错!说不是这个类型,一开始以为是bug,去sf上找答案,未果,结果在
https://laracasts.com/discuss/channels/laravel/mimes-validation-not-working-correctly-in-laravel

找到答案了!原因是他把我们当成当个的来验证,但是我们传文件制定的类型是可以一次上传多张。因此,正确的代码如下:

$request->validate([
    'document.*' => 'required|file|mimes:ppt,pptx,doc,docx,pdf,xls,xlsx|max:204800',
]);



laravel 5.5文件位置:

\vendor\swiftmailer\swiftmailer\lib\swiftmailer_generate_mimes_config.php

  $valid_mime_types_preset = [
      'php' => 'application/x-php',
      'php3' => 'application/x-php',
      'php4' => 'application/x-php',
      'php5' => 'application/x-php',
      'zip' => 'application/zip',
      'gif' => 'image/gif',
      'png' => 'image/png',
      'css' => 'text/css',
      'js' => 'text/javascript',
      'txt' => 'text/plain',
      'aif' => 'audio/x-aiff',
      'aiff' => 'audio/x-aiff',
      'avi' => 'video/avi',
      'bmp' => 'image/bmp',
      'bz2' => 'application/x-bz2',
      'csv' => 'text/csv',
      'dmg' => 'application/x-apple-diskimage',
      'doc' => 'application/msword',
      'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
      'eml' => 'message/rfc822',
      'aps' => 'application/postscript',
      'exe' => 'application/x-ms-dos-executable',
      'flv' => 'video/x-flv',
      'gz' => 'application/x-gzip',
      'hqx' => 'application/stuffit',
      'htm' => 'text/html',
      'html' => 'text/html',
      'jar' => 'application/x-java-archive',
      'jpeg' => 'image/jpeg',
      'jpg' => 'image/jpeg',
      'm3u' => 'audio/x-mpegurl',
      'm4a' => 'audio/mp4',
      'mdb' => 'application/x-msaccess',
      'mid' => 'audio/midi',
      'midi' => 'audio/midi',
      'mov' => 'video/quicktime',
      'mp3' => 'audio/mpeg',
      'mp4' => 'video/mp4',
      'mpeg' => 'video/mpeg',
      'mpg' => 'video/mpeg',
      'odg' => 'vnd.oasis.opendocument.graphics',
      'odp' => 'vnd.oasis.opendocument.presentation',
      'odt' => 'vnd.oasis.opendocument.text',
      'ods' => 'vnd.oasis.opendocument.spreadsheet',
      'ogg' => 'audio/ogg',
      'pdf' => 'application/pdf',
      'ppt' => 'application/vnd.ms-powerpoint',
      'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
      'ps' => 'application/postscript',
      'rar' => 'application/x-rar-compressed',
      'rtf' => 'application/rtf',
      'tar' => 'application/x-tar',
      'sit' => 'application/x-stuffit',
      'svg' => 'image/svg+xml',
      'tif' => 'image/tiff',
      'tiff' => 'image/tiff',
      'ttf' => 'application/x-font-truetype',
      'vcf' => 'text/x-vcard',
      'wav' => 'audio/wav',
      'wma' => 'audio/x-ms-wma',
      'wmv' => 'audio/x-ms-wmv',
      'xls' => 'application/vnd.ms-excel',
      'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
      'xml' => 'application/xml',
  ];



原文:https://blog.youkuaiyun.com/zhezhebie/article/details/80514155

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值