refactor: update mpFileUpload (#524)

This commit is contained in:
Honwhy Wang 2025-01-23 06:39:37 +08:00 committed by GitHub
parent 48e96440cc
commit c9b7213863
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -344,37 +344,37 @@ async function mpFileUpload(file: File) {
const { appID, appsecret, proxyOrigin } = JSON.parse( const { appID, appsecret, proxyOrigin } = JSON.parse(
localStorage.getItem(`mpConfig`)!, localStorage.getItem(`mpConfig`)!,
) )
/* eslint-disable no-async-promise-executor */
return new Promise<string>(async (resolve, reject) => { const access_token = await getMpToken(appID, appsecret, proxyOrigin)
try {
const access_token = await getMpToken(appID, appsecret, proxyOrigin).catch(e => console.error(e))
if (!access_token) { if (!access_token) {
reject(new Error(`获取 access_token 失败请检查console日志`)) throw new Error(`获取 access_token 失败`)
return
} }
const formdata = new FormData() const formdata = new FormData()
formdata.append(`media`, file, file.name) formdata.append(`media`, file, file.name)
const requestOptions = { const requestOptions = {
method: `POST`, method: `POST`,
data: formdata, data: formdata,
} }
let url = `https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=${access_token}&type=image` let url = `https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=${access_token}&type=image`
if (proxyOrigin) { if (proxyOrigin) {
url = `${proxyOrigin}/cgi-bin/material/add_material?access_token=${access_token}&type=image` url = `${proxyOrigin}/cgi-bin/material/add_material?access_token=${access_token}&type=image`
} }
const res = await fetch<any, {
url: string const res = await fetch<any, { url: string }>(url, requestOptions)
}>(url, requestOptions)
if (!res.url) {
throw new Error(`上传失败未获取到URL`)
}
let imageUrl = res.url let imageUrl = res.url
if (proxyOrigin && window.location.href.startsWith(`http`)) { if (proxyOrigin && window.location.href.startsWith(`http`)) {
imageUrl = `https://wsrv.nl?url=${encodeURIComponent(imageUrl)}` imageUrl = `https://wsrv.nl?url=${encodeURIComponent(imageUrl)}`
} }
resolve(imageUrl)
} return imageUrl
catch (e) {
reject(e)
}
})
} }
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------