开发需要用户上传视频
请求方法如下
//获取上传进度
function resultProgress(e) {
if (e.lengthComputable) {
var percent = (e.loaded / e.total) * 100;
$(".loading_text").text(percent.toFixed(2) + "%");
}
}
function upLoad(file, dir) {
return new Promise((resolve, reject) => {
var formData = new FormData();
formData.append("imgFile", file);
formData.append("dir", dir);
$.ajax({
type: "POST",
url: "请求地址",
data: formData,
processData: false,//必填
contentType: false,//必填
xhr: function () {
//获取ajax中的ajaxSettings的xhr对象 为他的upload属性绑定progress事件的处理函数
var myXhr = $.ajaxSettings.xhr();
if (myXhr.upload) {
//检查其属性upload是否存在
myXhr.upload.addEventListener("progress", resultProgress, false);
}
return myXhr;
},
success: function (res) {
resolve(JSON.parse(res));
},
faile: function (err) {
reject(err);
},
});
});
}
在PC端没有问题 安卓移动端也没有问题,苹果端会有出入,
苹果端在上传的时候会自动压缩视频文件 手机里视频的格式是MP4 压缩后的视频文件后缀会改变为 .MOV所以如果后端做的判断的话这里会因为后缀被拦截下来,特此笔记