@efox/upload-file
Version:
支持所有类型的文件上传到腾讯云,上传完成上报文件MD5、类型、URL、项目名称、用户uid
37 lines (36 loc) • 892 B
JavaScript
import 'whatwg-fetch'
export default async function ({ url, method, data, params, ...options }) {
const paramsArr = []
if (params) {
for (let [key, value] of Object.entries(params)) {
paramsArr.push(`${key}=${encodeURIComponent(value)}`)
}
}
let searchStr = ''
if (paramsArr.length) {
searchStr = '?' + paramsArr.join('&')
}
url = url + searchStr
let body
if (data) {
body = JSON.stringify(data)
}
const requestHeaders = {
'content-type': 'application/json;charset=UTF-8'
}
const response = await fetch(url, {
method,
body,
headers: requestHeaders,
credentials: 'include',
...options
})
if (!response.ok) {
throw response
}
const responseHeaders = response.headers
const contentType = responseHeaders.get('Content-Type')
if (contentType.startsWith('application/json')) {
return response.json()
}
}