fix upload request

This commit is contained in:
SrGooglo 2023-03-06 02:08:03 +00:00
parent 203b1f8e5a
commit 0af07301f4
3 changed files with 24 additions and 28 deletions

View File

@ -15,7 +15,7 @@ export default (props) => {
formData.append("files", req.file)
const request = await window.app.cores.api.customRequest({
const { data } = await window.app.cores.api.customRequest({
url: "/upload",
method: "POST",
data: formData
@ -28,10 +28,10 @@ export default (props) => {
setUploading(false)
if (request) {
if (data) {
// check failed uploads
if (request.failed.length > 0) {
request.failed.forEach((file) => {
if (data.failed.length > 0) {
data.failed.forEach((file) => {
app.notification.error({
message: "Failed to upload file",
description: `Could not upload file ${file.fileName} cause > ${file.error}`
@ -39,7 +39,7 @@ export default (props) => {
})
}
props.ctx.dispatchUpdate(request.files[0].url)
props.ctx.dispatchUpdate(data.files[0].url)
}
}

View File

@ -8,6 +8,7 @@ import { Icons } from "components/Icons"
import clipboardEventFileToFile from "utils/clipboardEventFileToFile"
import PostModel from "models/post"
import FilesModel from "models/files"
import "./index.less"
@ -119,25 +120,13 @@ export default class PostCreator extends React.Component {
// hide uploader
this.toogleUploaderVisibility(false)
// get file data
const file = req.file
const request = await FilesModel.uploadFile(req.file)
.catch(error => {
console.error(error)
antd.message.error(error)
console.log(`Uploading file >`, file)
// append to form data
const formData = new FormData()
formData.append("files", file)
// send request
const request = await this.api.post.upload(formData, undefined).catch((error) => {
console.error(error)
antd.message.error(error)
req.onError(error)
return false
})
return false
})
if (request) {
console.log(`Upload done >`, request)
@ -208,8 +197,13 @@ export default class PostCreator extends React.Component {
pending: this.state.pending.filter(uid => uid !== change.file.uid)
})
// update post data
this.addAttachment(change.file.response.files)
if (Array.isArray(change.file.response.files)) {
change.file.response.files.forEach((file) => {
this.addAttachment(file)
})
} else {
this.addAttachment(change.file.response)
}
// scroll to end
this.uploaderScrollToEnd()

View File

@ -1,5 +1,7 @@
export default class UploadModel {
export default class FilesModel {
static async uploadFile(file) {
console.log("uploadFile", file)
// get the file from the payload
if (!file) {
throw new Error("File is required")
@ -14,7 +16,7 @@ export default class UploadModel {
// send the request
const uploadRequest = await app.cores.api.customRequest( {
method: "POST",
url: "/upload",
url: "/files/upload",
data: formData,
}).catch((err) => {
throw new Error(err.response.data.message)
@ -40,7 +42,7 @@ export default class UploadModel {
const resultFiles = []
for await (const file of files) {
const result = await UploadModel.uploadFile(file)
const result = await FilesModel.uploadFile(file)
resultFiles.push(result)
}