0
현재 이미지를 미리보고 있지만 실제로 파일을 내 양식으로 반환하여 나중에 백엔드에서 제출할 수는 있지만 확실하지는 않습니다. 그렇게하는 방법? 나는이 같은 formData 객체에 파일을 데이터 기능에 formData:new FormData()
를 추가 한 후 추가로 시도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>
:
이
내 구성 요소입니다this.formData.append('file', files[0]);
하지만 오류가 발생합니다 :
formData is not defined
내가 제안한대로했는데 dd (Input :: all())를 수행 할 때 컨트롤러에 파일이 없습니다. – Marco