字符串?"/>
上传文件后获取到的file.type为空字符串?
问题:今天项目上遇到了一个问题,用户上传文件,前端根据获取到的文件的type属性进行判断是否可以上传,但是在个别用户的电脑上即使使用同一个文件上传却出现通过获取到的file对象中,type属性为"",于是找各种资料希望了解浏览器是如何获取这个type属性的,为什么同一个文件不同的电脑获取到的属性不一样。
MIME Type是什么
MDN上解释,MIME Type (Multipurpose Internet Mail Extensions (MIME) type)是一种标准化的方式来表示文档的性质和格式。
浏览器通常使用MIME类型(而不是文件扩展名)来确定如何处理文档;因此服务器设置正确以将正确的MIME类型附加到响应对象的头部是非常重要的。所以浏览器中<input type="file">获取到的file对象中的type属性其实是文件的MIME Type。
Chrome获取MIME类型
在chromium开源代码中 ?l=314 314-318行中提到了:
// We implement the same algorithm as Mozilla for mapping a file extension to
// a mime type. That is, we first check a hard-coded list (that cannot be
// overridden), and then if not found there, we defer to the system registry.
// Finally, we scan a secondary hard-coded
更多推荐
上传文件后获取到的file.type为空字符串?
发布评论