我正在尝试在vue.js中上传多张图片之前预览这些图片。看起来我做错了什么,但是无法弄清楚问题所在。请帮我指导一下。以下是我的组件:
<template>
<div class="form-group">
<textarea name="body" class="form-control" v-model="body" rows="4" placeholder="What's on your mind"></textarea>
</div>
<div class="form-group">
<div v-if="attach">
<img :src="selectedFile" style="width:70px; height:60px" />
<button type="button" class="btn btn-danger" @click.prevent="cancelImage">Cancel</button>
</div>
<div v-else>
<input type="file" @change="onFileChange" class="btn btn-default" multiple>
</div>
</div>
<div class="form-group">
<button type="button" class="btn btn-primary" @click.prevent="sendPost">Post</button>
</div>
</template>
<script>
export default {
data(){
return {
body: '',
images: [],
attach: false,
selectedFile: ''
}
},
methods: {
onFileChange(e){
var files = e.target.files;
if(files){
var files_count = files.length;
for (let i=0; i<files_count; i++){
var reader = new FileReader();
reader.onload = function(e){
this.selectedFile = e.target.result;
}
reader.readAsDataURL(files[i]);
}
}
}
}
}
</script>
this
是FileReader。另外,我不知道vue.js什么时候会尝试使用这个值?而且您的逻辑无论如何都不适用于多个文件。最终,您甚至不需要FR,可以使用同步URL.createObkectURL创建blobURI。 - Kaiido{ this.selectedFile = URL.createObjectURL(e.target.files[0]); }
,但是控制台上出现了这个错误。Uncaught TypeError: Cannot read property '0' of undefined at FileReader.reader.onload (app.js:46112)
- banky