对接烟台app的h5页面
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
3.3 KiB

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);
}