2017-01-19 1 views
0

У меня возникла проблема добавления чего-либо в данные формы. Его всегда пусто. Как добавить файл изображения и некоторые другие данные?Данные формы пустые после использования append?

var data = new FormData(); 
    fileResult = this.$els.fileIntroImage.files; 

    data.append('name',this.property_credentials.name); 
    data.append('default_image',this.$els.fileIntroImage.files[0],File); 
    console.log('data',data); 
+1

Попробуйте вместо этого записать: 'data.get ('name')' – Nora

+0

Теперь я могу отображать его в vue.js, но как передать эти параметры в контроллер laravel? когда я использую это следующим образом: $ http.put ('/ profile /' + user_id + '/ property /' + property_id + '/ edit', data). then (function (response) {} его пустой – None

+0

Объекты FormData но не уверены, что данные вообще не отправляются? Проверьте инструменты dev вашего браузера и посмотрите вкладку заголовков для запроса ajax, он покажет вам, что было отправлен в разделе запроса. – Joe

ответ

1

Понадобилось время, чтобы получить информацию о загрузке файлов с помощью Vue.

Вот методы объекта на моем Вью компонента:

methods: { 
    upload(e) { 
     e.preventDefault(); 
     var self = this; 

     var formData = this.gatherFormData(); 

     this.$http.post('/path/to/upload/method', formData) 
     .then(response => { 
      //do stuff 
     }, 
     (response) => { 
      //show error 
     }); 
    }, 
    gatherFormData() { 
     const data = new FormData(); 

     data.append('image', this.$refs.image.files[0]); 
     data.append('other_field', this.other_field); 
     return data; 
    } 
}, 

Это должно функционировать как в качестве обычного поля файла, насколько Laravel обеспокоен.