Files
yunxinwei-uniapp/api/upload.js
messi 4810dc79e3 fix
2024-08-19 17:17:46 +08:00

70 lines
1.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import request from '@/utils/request'
import http from '@/websoft/api/index.js'
import {
fileUrl
} from '@/config.js';
import storage from '@/utils/storage'
import dayjs from "dayjs"
import appConfig from '@/config.js'
// api地址
const api = {
image: 'upload/image'
}
// 图片上传
export const image = files => {
// 文件上传大小, 2M
const maxSize = 1024 * 1024 * 2
// 执行上传
return new Promise((resolve, reject) => {
request.urlFileUpload({ files, maxSize })
.then(result => resolve(result.map(item => item.data.fileInfo.file_id), result))
.catch(reject)
})
}
export const uploadFile = async ({filePath}) => {
// 获取临时凭证
let sts = storage.get('sts');
if(!sts){
const stsRes = await http.get('/oss/getPostForm')
console.log('stsRes: ',stsRes);
sts = stsRes.data
storage.set('sts', sts, 60)
}
const {polocyBase64,signature} = sts;
var suffix = filePath.substring(filePath.lastIndexOf(".")); //.txt
const fileName = dayjs().format('YYYYMMDD') + '/'+ uni.$u.guid() + suffix;
return new Promise((reso, rej) => {
uni.uploadFile({
url: appConfig.fileUrl, // 开发者服务器的URL。
filePath: filePath,
name: 'file', // 必须填file。
formData: {
key: fileName,
'policy': polocyBase64,
'OSSAccessKeyId': 'LTAI5tSZ62sPCvUsLRDDf7fH',
'success_action_status': '200', //让服务端返回200,不然默认会返回204
'signature': signature,
// 'x-oss-security-token': this.stsToken,
},
success: (res) => {
const webUrl = appConfig.fileUrl + '/' + fileName;
reso({data: {url: webUrl,thumb: webUrl}})
},
fail: err => {
rej(err)
}
});
})
}
export const getTempOssToken = () => http.get('/oss/getTempToken')
export default {
uploadFile,
getTempOssToken
}