Как поместить исходный файл в Django

avatar
kanjiake
9 августа 2021 в 06:53
28
0
0

Я использую Reactjs как FrontEnd, Django как Backend. Я пытаюсь передать изображение как исходный файл с помощью Antd, но это не работает

все оставшиеся поля опубликованы, но изображение нет. Возвращает ноль, иногда возвращает ошибку 404

это мое состояние:

const [state, dispatch] = React.useReducer(newAvatar, {
    status: 'idle',
    clear: false,
    message: null,
    fileImg: [],
    users: '',
    initialValues: {
        username:'', //user.username,
        email:'', // user.email,
        name:'',// user.name,
        phone:'',// user.phone,
        birthday:'',// user.birthday,
        gender:'', //user.gender,
        address:'', //user.address,
        image:'',// user.userImage,
    }
})

const [form] = Form.useForm()

const history = useHistory()
const authenticate = useAuthenticate()
const userid =user.id;

и это мой финиш

const onFinish = async values => {

    let formData = new FormData()

    for (const key in values) {
        formData.append(key, values[key] ?? '')
    }

    formData.append('userId', user.id)
    formData.append('name',values.name)
    formData.append('username',values.username)
    formData.append('phone',values.phone)
    formData.append('birthday',values.birthday)
    formData.append('gender',values.gender)
    formData.append('address',values.address)
    formData.append('email',values.email)
    // if(values.image!= null) {
    //  formData.append('userImage',values.image)
    // }
    // state.fileImg.forEach((file, i) => formData.append(`images${i}`, file))

    try {
        await axios.patch(`/api/users/${userid}/`, formData, {
            headers: {
                Authorization: `Bearer ${cookies['gp_token']}`
            }
        })
        .then(res => {
            console.log(res.data)
            authenticate({user: res.data, token: cookies['gp_token']})
        })

        form.resetFields()
        dispatch({ type: 'upload_success' })
    } catch (error) {
        dispatch({ type: 'upload_fail' })
    } finally {
        window.scrollTo(0, 0)
        modal.destroy()
    }
}

пожалуйста, поддержите меня большое спасибо всем вам

Источник

Ответы (0)