vue.js - 如何在使用 vuejs 上传之前预览多个附加图像
问题描述
我正在创建一个功能,用户可以在 Vuejs 中上传多个图像。但在上传这些图片之前,图片应该有预览。此外,还可以在单击按钮时删除附加的图像。我在这里的一些帖子中得到了以下代码,但我似乎无法使其工作。非常感谢任何帮助。提前谢谢你。
这是我的代码:
<div class="form-group">
<label for="image_attach">Attach maximum of 2 images (optional)</label>
<div v-for="(image, key) in images" :key="key">
<button class="close" @click.prevent="removeImage(index, $event)">×</button>
<div>
<img class="preview" :ref="'image '"/>
{{ image.name }}
</div>
</div>
<input type="file" multiple accept="image/*" @change="uploadImage" />
</div>
data () {
images: [],
},
methods: {
uploadImage(e) {
if(this.images.length === 2) {
alert('You can only upload up to 2 images.')
} else {
let vm = this;
var selectedFiles = e.target.files;
for (let i = 0; i < selectedFiles.length; i++) {
console.log(selectedFiles[i])
this.images.push(selectedFiles[i]);
}
for (let i = 0; i < this.images.length; i++) {
let reader = new FileReader();
reader.onload = (e) => {
this.$refs.image[i].src = reader.result;
console.log(this.$refs.image[i].src);
};
reader.readAsDataURL(this.images[i]);
}
}
},
removeImage(index) {
this.images.splice(index, 1);
this.$refs.image[index].name = ""
}
}
解决方案
<img class="preview" :src="image" :data-id="key"/>
<i @click="removeImg(key)"></i>
推荐阅读
- typescript - Angular 9没有设置动态输入字段值
- swift - 如何将 '(Data?, URLResponse, Error?) 转换为预期的参数类型 '(Data?, URLResponse?, Error?) -> Void'
- lua - 获取“IntValue”的值总是得到默认值
- amazon-web-services - AWS Systems Manager Parameter Store 和 AWS Secrets Manager 之间的区别?
- mysql - MySQL - 聚合和 GROUP BY 与子查询
- android - 如何在 android TWA(受信任的网络活动)中创建动画启动画面
- python-3.x - 使用 interpolate.splrep 输入数据错误
- c# - 如何在运行时确定属性所针对的类的名称和引用?
- php - Magento 2.3 安装问题
- ios - Appium iOS:卸载应用程序并删除会话