import { getOssToken } from "@/service/oss.js" /** * dispose oss直传文件(视频,图片),传入以下两个参数,返回一个上传后的Array[urlLink] Promise对象 * @params pathList Array(String || Object[String]) 需要上传到oss的文件列表 * @params fileType String 上传到oss的文件类型,如:image、video * 图片上传调用:let imageList = await dispose(res.tempFilePaths, 'image'); * 视频上传调用:let videoList = await dispose([res.tempFilePath], 'video'); */ export async function dispose(pathList = [], fileType = 'image'){ let ossResult = await getOssToken(); // 获取oss权限 let oss = ossResult.data; let premiseList = []; pathList.map((item, index) => { let promiseItem = new Promise((resolve, reject) => { let tiemr = new Date(); let ext = getFileExtendingName(item.tempFilePath || item); let nameStr = oss.dir + tiemr.getTime() + index + ext; uni.uploadFile({ url: oss.host, filePath: item.tempFilePath || item, name: 'file', fileType, formData: { 'key': nameStr, "OSSAccessKeyId": oss.accessid, "policy": oss.policy, "Signature": oss.signature, "success_action_status": 200, }, success: result => { if (result.statusCode == 200) { let fileUrl = oss.host + '/' + nameStr; resolve(fileUrl); }else{ reject(result); } }, fail: err => { reject(err); } }) }) premiseList.push(promiseItem); }); return Promise.all(premiseList); } // 获取文件后缀 function getFileExtendingName(filename){ var reg = /\.[^\.]+$/; var matches = reg.exec(filename); if (matches) { return matches[0]; } return ''; }