import UploadFile from "@/utils/upliadFile"; import store from "@/store"; import { base_img_url2 } from "@/api/config"; import wx from "weixin-js-sdk"; const miniUserId = store.state.home.miniUserId; const uploadFileObj = new UploadFile(); function base64ToBlob(base64, mime = 'image/png') { const byteCharacters = window.atob(base64.split(',')[1]); // 去掉 Base64 前缀 const byteNumbers = new Array(byteCharacters.length).fill(0).map((_, i) => byteCharacters.charCodeAt(i)); const byteArray = new Uint8Array(byteNumbers); return new Blob([byteArray], { type: mime }); } function base64ToFile(base64, filename = 'image.png') { const blob = base64ToBlob(base64); return new File([blob], filename, { type: blob.type }); } async function uploadBase64(base64,isToPage = true) { return new Promise((resolve, reject) => { // 转为 File 对象 const file = base64ToFile(base64, 'upload.png'); let ext = 'png'; let key = `birdseye-look-mini/${miniUserId}/${new Date().getTime()}.${ext}`; uploadFileObj.put(key, file).then((resFilename) => { let imgUrl = base_img_url2 + resFilename console.log('resFilename', base_img_url2 + resFilename); if(isToPage){ wx.miniProgram.navigateTo({ url: `/pages/subPages/share_img/index?imgUrl=${imgUrl}`, }); }else{ if(resFilename){ resolve(imgUrl); }else{ reject('失败') } } }); }) } export { uploadBase64 };