import { CusResourceGetUploadPolicy } from "./api";
// 获取oss信息的接口
import axios from "axios"
import store from "../store"
import { cloneDeep } from "lodash";
function createRandom() {
return Math.random().toString().slice(2);
}
// 多文件上传
export function uploadToOss(file) {
return new Promise(resolve => {
CusResourceGetUploadPolicy({}).then((res) => {
if (res.data.code == 1) {
let policy = res.data.data;
var filename = new Date().getTime() + "_" + createRandom() + "." + file.type.slice(6);
var file_name = new Date().getTime() + "_" + file.name;
var formData = new FormData();
formData.append("Filename", filename);
formData.append("key", policy.dir + "/" + filename);
formData.append("OSSAccessKeyId", policy.accessid);
formData.append("policy", policy.policy);
formData.append("Signature", policy.signature);
formData.append("success_action_status", "200");
formData.append("file", file);
axios({
url: policy.host,
data: formData,
method: "post",
onUploadProgress: function(progressEvent) {
let complete = ((progressEvent.loaded / progressEvent.total) * 100) | 0;
let progressObj = cloneDeep(store.state.progressObj);
progressObj[file_name] = complete;
if (progressObj[file_name] === 100) {
delete progressObj[file_name];
}
store.commit('changeProgressObj', progressObj)
},
}).then((res) => {
var imageUrl = policy.host + "/" + policy.dir + "/" + filename;
resolve({ name: file.name, imageUrl });
});
}
});
})
}
封装oss直传
最新推荐文章于 2023-07-07 10:28:34 发布