1、先弹出让用户选择上传类型,是图片还是视频,然后根据返回值调用不同方法
chooseVideoImage() {
uni.showActionSheet({
title: '选择上传类型',
itemList: ['图片', '视频'],
success: res => {
console.log(res);
if (res.tapIndex == 0) {
this.chooseImages();
} else {
this.chooseVideo();
}
}
});
},
2、如果用户选择图片
chooseImages() {
uni.chooseImage({
count: 1,
sizeType: ['original'],
sourceType: ['album'],
success: res => {
// console.log(res.tempFilePaths[0])
this.res_url1 = res.tempFilePaths[0];
this.img_list.push(this.res_url1);
console.log(this.img_list);
console.log(this.res_url1);
var that1 = this;
uni.uploadFile({
// 需要上传的地址
url: that1.API+'/api/v1/file/files',
// filePath 需要上传的文件
filePath: that1.res_url1,
name: 'file',
success(res1) {
console.log(res1)
// 显示上传信息
// console.log(JSON.parse(res1.data))
let a = JSON.parse(res1.data);
console.log(a.data.url);
that1.url1 = a.data.url;
console.log(that1.url1);
}
});
}
});
},
that1.url1就是网络图片路径,可发送给后端存储
3、如果用户选择视频
chooseVideo() {
// 上传视频
uni.chooseVideo({
maxDuration: 60,
count: 1,
// camera: this.cameraList[this.cameraIndex].value,
sourceType: ['album'],
success: res => {
console.log(res.tempFilePath);
this.res_url2 = res.tempFilePath;
console.log(this.res_url2)
var that2 = this;
uni.uploadFile({
// 需要上传的地址
url: that2.API+'/api/v1/file/files',
// filePath 需要上传的文件
filePath: that2.res_url2,
name: 'file',
success(res1) {
console.log(res1)
// 显示上传信息
console.log(JSON.parse(res1.data))
let a = JSON.parse(res1.data);
if(res1.errMsg == 'uploadFile:ok'){
uni.showToast({
title:'视频上传成功'
})
}
console.log(a.data.url);
that2.url2 = a.data.url;
console.log(that2.url2);
},
fail(res) {
console.log(res)
}
});
}
});
},
that2.url2就是视频地址,应该是.MP4格式
然后用img标签,可以把mp4格式的视频当做视频,展示在页面上,可放大,可暂停