场景:某些电脑用户上传同一视频,却发现无法预览/播放该视频,如mov/f4v/vob/rm/rmvb...等格式
原因:使用同一个文件上传出现通过获取到的file对象type属性为"",系统中所安装的Microsoft Excel软件或注册表的原因,不常见的文件扩展名会返回空字符串,最好不要依靠这个type属性作为唯一的验证方案
方法:用file.type做匹配同时用file.name,把常见的type文件后缀name做个配对var fileTypeList = { docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document", doc:"application/msword", pdf:"application/pdf", rtf:"application/rtf", xls:"application/vnd.ms-excel", xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", ppt:"application/vnd.ms-powerpoint", pptx:"application/vnd.openxmlformats-officedocument.presentationml.presentation", rar:"application/x-rar-compressed", swf:"application/x-shockwave-flash", zip:"application/zip", mid:"audio/midi", midi:"audio/midi", kar:"audio/midi", mp3:"audio/mpeg", ogg:"audio/ogg", m4a:"audio/x-m4a", ra:"audio/x-realaudio", gif:"image/gif", jpeg:"image/jpeg", jpg:"image/jpeg", png:"image/png", tif:"image/tiff", tiff:"image/tiff", wbmp:"image/vnd.wap.wbmp", ico:"image/x-icon", jng:"image/x-jng", bmp:"image/x-ms-bmp", svg:"image/svg+xml", svgz:"image/svg+xml", webp:"image/webp", css:"text/css", html:"text/html", htm:"text/html", shtml:"text/html", txt:"text/plain", css:"text/css", xml:"text/xml", "3gpp":"video/3gpp", "3gp":"video/3gpp", mp4:"video/mp4", mpeg:"video/mpeg", mpg:"video/mpeg", mov:"video/quicktime", webm:"video/webm", flv:"video/x-flv", m4v:"video/x-m4v", wmv:"video/x-ms-wmv", avi:"video/x-msvideo", }
export function fileTypeFormat(file){ return file.type || fileTypeList[file.name.substring(file.name.lastIndexOf('.') + 1)] }
相关文档解析见https://blog.csdn.net/wuhuama_/article/details/118699195 标签:audio,预览,text,image,application,video,file,播放,上传 From: https://www.cnblogs.com/taojiejun/p/17104336.html