Я не могу опубликовать свой файл на сервере с formData из состояния - PullRequest
0 голосов
/ 13 февраля 2019

Я не могу опубликовать данные формы на моих файлах сервера как formData из моего магазина.Проверяя состояние перед отправкой, я вижу, что свойства изображения и видео имеют значения formDatas, но при отправке параметры запроса являются пустым объектом

<template>
    <input type="file" @change="onImageSelected($event)" accept="image/*" >
</template>

methods: {
            submit() {
                this.$v.$touch()
                if (this.$v.$invalid || this.tags.length > 3) {
                    this.submitStatus = 'ERROR'
                } else {
                    this.submitStatus = 'PENDING'
                    this.$store.dispatch('exercises/storeExercise')

                }
            },
            onImageSelected(event) {
                this.image = event.target.files[0]
                if (this.image.size < 8000000) {
                    const formDataImage = new FormData()
                    formDataImage.append('image', this.image)
                    this.$store.dispatch('exercises/commitImageSelected', formDataImage)
                }
            },
}

const state = {
    exercises: [],
    tags: [],
    selectedExercise: null,
    selectedComponent: BeforeSelect
    }

const mutations = {
    setImageSelected(state, image) {
        Vue.set(state.selectedExercise, 'image', image)
    },
    setVideoSelected(state, video) {
        Vue.set(state.selectedExercise, 'video', video)
    }
}

const actions = {
        commitImageSelected({commit}, image){
            commit('setImageSelected', image)
        },
        commitVideoSelected({commit}, video){
            commit('setVideoSelected', video)
        },
        storeExercise({commit, state}) {
            axios.post('exercises', state.selectedExercise)
                .then(({data}) => {
                    commit('setExercises', data)
                    })
                    .catch(err => console.log(err))
        },

}

1 Ответ

0 голосов
/ 16 февраля 2019

Попробуйте это сообщение в методе storeExcerise.

axios.post('exercises',state.selectedExercise,{
          headers: { 'Content-Type': undefined},
        }).then(function (response) {
          if (response.data.ok) {
          }
        }.bind(this));

Это нормально работает при загрузке файла на сервер.

...