Base-64로 인코딩 된 형식의 이미지를 서버로 보내려면 두 가지 구성 요소를 만들었습니다. 부모 구성 요소가 마운트되면 자식 참조를 file로 설정해야합니다.이미지 구성 요소에 이미지 src를 문자열로 설정하는 방법은 무엇입니까?
는Vue.component('some-form', {
template: '#some-form',
data: function() {
return {
logoImage: '',
coverImage: ''
}
},
methods: {
onSubmit: function(event) {
var dataForm = {};
var that = this;
dataForm['logo-image'] = this.logoImage;
dataForm['cover-image'] = this.coverImage;
// AJAX REQUEST HERE with posting data
},
},
mounted: function(){
var $this = this;
// AJAX REQUEST HERE with getting data
}
});
Vue.component('upload-photo', {
template: '#upload-photo',
data: function() {
return {
image: {
body: '',
'content-type': '',
'content-length': '',
url: ''
},
imageBody: ''
}
},
props: ['logoImage', 'title', 'description'],
watch: {
'image': function() {
this.$emit('input', this.image);
}
},
created: function(){
this.image = this.logoImage;
},
mounted: function() {
var that = this;
//AJAX REQUEST HERE to get data
},
methods: {
onFileChange: function(e) {
var files = e.target.files || e.dataTransfer.files;
if (!files.length)
return;
this.createImage(files[0]);
},
createImage: function(file){
var image = new Image();
var reader = new FileReader();
var vm = this;
vm.image = {};
reader.onload = function(e) {
vm.image.body = e.target.result;
vm.imageBody = e.target.result;
};
vm.$set(vm.image, 'content-type', file.type);
vm.$set(vm.image, 'content-length', file.size);
reader.readAsDataURL(file);
},
removeImage: function (e) {
this.image = '';
}
}
});
var app = new Vue({
el: '#app',
data: function() {
},
methods: {
},
mounted: function() {
}
});
전체 예를 https://codepen.io/anon/pen/ZvzwzO 어떻게이 구현 될 수 있는가?
P. 같은 구성 요소에서 구현하는 방법을 모르겠습니다. 두 개의 속성이있는 문자열로 데이터를 보내지 만 문자열로 연결되지만 링크가 있습니다.
P.S. 검색하는 방법이 필요합니다.
"부모 구성 요소가 마운트되어있을 때 file_에 대한 하위 참조로 설정되어 있다고 가정 할 때"파일에 대한 하위 참조에서 _what_를 설정해야합니까? –
서버에 파일을 저장할 URL이있는 문자열 – Jarvis