1、utils 创建upload.js
npm install ali-oss --save 安装插件
// const OSS = require("ali-oss"); //引入安装包;
import OSS from 'ali-oss'
//配置 阿里 oss 存储对应的 bucket 桶
var client = new OSS({
region: "xxx", //指申请OSS服务时的地域
endpoint: "xxx", //指定为HTTPS,也可以是IP的形式 region将会被忽略
accessKeyId: "xxx", // 填写你的accessKeyId
accessKeySecret: "xxx", // 填写你的accessKeySecret
bucket: "xxx", // 桶的名称
secure: true // 配合region使用。如果指定secure为true,则使用HTTPS访问。
});
// e : 文件对象,filename:存储文件名
export function uploadVid(e, filename) {
console.log(e, e.tempFile.length, filename)
return new Promise((resolve, reject) => {
uni.showLoading({
title: '正在上传...'
});
if (e.tempFile.length == 0) {
uni.hideLoading();
uni.showToast({
title: '未找到视频',
icon: 'none'
})
return false;
};
let file = e.tempFile;
let time = new Date(),
y,
m,
d;
y = time.getFullYear();
m = String(time.getMonth() + 1).length === 2 ?
time.getMonth() + 1 :
"0" + (time.getMonth() + 1);
d = String(time.getDate()).length === 2 ?
time.getDate() :
"0" + time.getDate();
let dfilefold = y + m + d;
let r = Math.random().toString(16).substr(2);
let name = filename + dfilefold + "/" + r + ".mp4";
client.multipartUpload(name, file).then(function(result) {
uni.hideLoading();
uni.showToast({
title: "上传成功",
icon: "none"
})
let url = result.res.requestUrls[0];
var index = url.indexOf("?");
url = url.substring(0, index);
resolve(url);
})
.catch((err) => {
uni.hideLoading();
uni.showToast({
title: "上传失败",
icon: "none"
})
reject(err)
});
})
}
//上传
const afterReadVideo = async event => {
let lists = [].concat(event.file);
let fileListLen = fileListVideo.value.length;
lists.map(item => {
fileListVideo.value.push({
...item,
status: 'uploading',
message: '上传中'
});
});
for (let i = 0; i < lists.length; i++) {
const result = await uploadFilePromise(lists[i]);
let item = fileListVideo.value[fileListLen];
fileListVideo.value.splice(fileListLen, 1, {
...item,
status: 'success',
message: '',
url: result
});
fileListLen++;
}
};
const deletePicVideo = event => {
fileListVideo.value.splice(event.index, 1);
};
const uploadFilePromise = url => {
console.log(url)
return uploadVid(url, '名字xx')
};