个别用户电脑上传某些格式视频无法预览/播放
场景:某些电脑用户上传同一视频,却发现无法预览/播放该视频,如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)]
}

浙公网安备 33010602011771号