0
現在画像をプレビューしていますが、実際にファイルをフォームに戻したいので、後でバックエンドで送信できますが、わかりませんどうやってするか?Vue - 非表示の入力フィールドにファイルを取得する方法
これは私のコンポーネントである:
<template>
<div>
<div v-if="!image">
<h2>Select an image</h2>
<input type="file" @change="onFileChange">
</div>
<div v-else>
<img :src="image" />
<button @click="removeImage">Remove image</button>
<input type="file" v-bind:value="{ file }" style="display:none">
</div>
</div>
</template>
<script>
export default {
data() {
return {
image: '',
formData:new FormData()
}
},
methods: {
onFileChange: function onFileChange(e) {
var files = e.target.files || e.dataTransfer.files;
if (!files.length)
return;
this.createImage(files[0]);
this.formData.append('file', files[0]);
},
createImage: function createImage(file) {
var image = new Image();
var reader = new FileReader();
var vm = this;
reader.onload = function (e) {
vm.image = e.target.result;
};
reader.readAsDataURL(file);
},
removeImage: function removeImage(e) {
this.image = '';
}
}
}
</script>
私はデータ機能にformData:new FormData()
を追加し、このようFORMDATAオブジェクトにファイルを追加して試してみました:
this.formData.append('file', files[0]);
しかし、私はエラーを取得する:
formData is not defined
示唆したように私がやったが、私はDD(入力::すべてを())を行うとき、私は私のコントローラ内の任意のファイルを得ることはありません。 – Marco