import { request } from './request.js'; import { getFileType } from './tools.js'; // const http = new HTTP() export function uploadFile(res, callback) { initOssSignFormLocal((resultData) => { let uploadParam = resultData; const tempFiles = res.tempFiles; if (tempFiles.length > 0) { tempFiles.forEach((file) => { console.log('upload2Oss', file); console.log(uploadParam); uni.uploadFile({ url: uploadParam.domain.replace('http:', 'https:'), filePath: file.path, name: 'file', formData: { key: uploadParam.dir + '/omc-miniapp-upload/${filename}', policy: uploadParam.policy, OSSAccessKeyId: uploadParam.accessid, success_action_status: '200', signature: uploadParam.signature }, success(res2) { console.log('chooseImage success, temp path is: ', file, res2); const fileName = getWxFileName(file.path); const saveUrl = uploadParam.dir + '/omc-miniapp-upload/' + fileName; let params = { url: saveUrl, name: fileName, size: file.size, type: getFileType(file.path) }; saveAliyun(params, (res) => { const { resultCode, resultData } = res; if (resultCode == '200' && resultData) { let code = resultData; file.code = code; file.path = uploadParam.domain + '/' + saveUrl; callback(file.path); } else { uni.showToast({ title: '上传失败', icon: 'none', duration: 1000 }); } }); } }); }); } }); } function initOssSignFormLocal(callback) { const expireTime = 2; // 离失效还有几分钟就不能使用的sign initOssSignFromRemote((res) => { const localData = res.resultData; if (localData) { if (localData.expire - new Date().getTime() / 1000 > expireTime * 60) { callback(localData); return; } } }); } function initOssSignFromRemote(success) { const rootPath = ''; let params = { url: rootPath + '/api/attach/ossSign', method: 'POST', data: {}, success: success }; return request(params); } function saveAliyun(data, success) { const rootPath = ''; let params = { url: rootPath + '/api/attach/save/aliyun', method: 'POST', data: data, success: success }; return request(params); } function getWxFileName(tt) { return tt.substring(tt.lastIndexOf('/') + 1); }