ich ein einfaches Formular mit einem Datei-Upload und eine Texteingabe wie folgt:Datei kann nicht auf Laravel Controller mit VueJS passieren
<form v-on:submit.prevent="createStatus" method="post" enctype="multipart/form-data">
<div class="Image-input__input-wrapper">
<input @change="previewThumbnail" class="Image-input__input" name="thumbnail" type="file">
</div>
<div v-bind:class="{'form-group': true, 'has-error': errors.description}">
<label>Status Description:</label>
<input type="text" class="form-control" v-model="newStatus.description">
<span class="help-block" v-for="error in errors.description">{{ error }}</span>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">Save New Status</button>
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancel</button>
</div>
</form>
Auf eine Datei das Bild Auswahl der previewThumbnail Methode angesehen wird, verwendet wird.
previewThumbnail: function(event) {
var input = event.target;
if (input.files && input.files[0]) {
var reader = new FileReader();
var vm = this;
reader.onload = function(e) {
vm.imageSrc = e.target.result;
}
reader.readAsDataURL(input.files[0]);
}
console.log(input.files[0]);
this.newStatus.image = input.files[0];
console.log(this.newStatus.image);
},
in der Konsole erhalte ich die Dateidaten. Ich brauche dann diese Daten, die an den Laravel-Controller übergeben werden, aber die Dateidaten machen es nicht zur Submit-Funktion. Die folgende createStatus-Methode wird beim Senden des Formulars aufgerufen. Wenn Sie die Antwort zurückgeben, ist das an die URL übergebene newStatus.image leer.
createStatus(){
var formData = new FormData();
formData.append('image', this.newStatus.image);
formData.append('description', this.newStatus.description);
axios.post('/api/statuses', formData).then(response => {
console.log(response.data);
}, response => {
this.formErrors = response.data;
});
},
Habe ich etwas in der Submit-Funktion verpasst?
bekommen, dass es gelöst, vielen Dank für Ihre Hilfe so viel! Ich kann nicht glauben, dass ich das verpasst habe. – mims
@Dan Gamble, Scheint du kannst mir helfen. Wenn Sie Freizeit haben, können Sie hier sehen: https://stackoverflow.com/questions/44174007/how-can-i-pass-input-file-with-vue-js-2?noredirect=1#comment75368949_44174007 –