欢迎各位兄弟 发布技术文章
这里的技术是共享的
1)在 laravel 的 请求的 rules 方法里 写上 'article_excel'=>'required|mimeTypes:application/vnd.ms-office'
类型在这里面找 http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
当然 laravel 每个项目里都有
vendor/fzaninotto/faker/src/Faker/Provider/File.php 文件里有
vendor/guzzlehttp/psr7/src/functions.php 文件里有
2)然后 在程序里上传文件的时候
在 vendor/laravel/framework/src/Illuminate/Validation/Validator.php 的 ValidateMineType方法里 试下如下图所示的代码
protected function validateMimetypes($attribute, $value, $parameters)
{
if (! $this->isAValidFileInstance($value)) {
return false;
}
var_dump($value->getMimeType());//得到真正的上传的 MimeType
var_dump($parameters);//在第1)步中请求里的 逗号分割的 rules 规则所组成的数组
然后 我们根据 真正的上传的 MimeType修改这个逗号分割的rules
,尽量多的写 比如 可能同一后缀名的 (如xls), 其 MimeType 可能不一样
看看 MimeType http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
exit;
return $value->getPath() != '' && in_array($value->getMimeType(), $parameters);
}