feat: 图生图功能
feat: 参考图片(图生图)选择器 ui: 文件上传(预留) composable ui: 登录过期提示 ui: 调整部分 ui
This commit is contained in:
38
composables/useFileGo.ts
Normal file
38
composables/useFileGo.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import {useFetchWrapped} from '~/composables/useFetchWrapped';
|
||||
|
||||
const putOSS = (file: File, signed_url: string) => new Promise<void>((resolve, reject) => {
|
||||
let xhr = new XMLHttpRequest()
|
||||
xhr.open('PUT', signed_url as string)
|
||||
xhr.setRequestHeader('Content-Type', '')
|
||||
xhr.onload = () => {
|
||||
if (xhr.status === 200) {
|
||||
resolve()
|
||||
} else {
|
||||
reject()
|
||||
}
|
||||
}
|
||||
xhr.onerror = reject
|
||||
xhr.send(file)
|
||||
})
|
||||
|
||||
export const useFileGo = (file: File) => new Promise<string>((resolve, reject) => {
|
||||
useFetchWrapped<req.file.Upload & AuthedRequest, string>('App.Tools_Upload.GoOss', {
|
||||
token: useLoginState().token!,
|
||||
user_id: useLoginState().user.id,
|
||||
file_name: file.name,
|
||||
file_type: file.type,
|
||||
file_size: file.size,
|
||||
}).then(async res => {
|
||||
if (res !== '') {
|
||||
try {
|
||||
await putOSS(file, res)
|
||||
let url = res.split('?')[0]
|
||||
resolve(url)
|
||||
} catch (err) {
|
||||
reject(err)
|
||||
}
|
||||
}
|
||||
}).catch(err => {
|
||||
reject(err)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user