vue.js - 如何删除上传的图片
问题描述
在这里,我尝试删除上传的图像。就像当用户单击用户上传的任何图像时,如果我们单击十字图标,它必须删除图像。所以下面是我尝试过的代码,我可以删除图像,但是一次删除多个图像我需要只删除选定的图像而不是多个,所以我们该怎么做。所有图像的上角都应该有十字图标。请
Vue.config.productionTip = false;
new Vue({
el: '#app',
data() {
return {
files: [],
images: null,
}
},
computed: {
filesNames() {
const fn = []
for (let i = 0; i < this.files.length; ++i) {
fn.push(this.files.item(i).name)
}
return fn
}
},
methods: {
handleFileUploads(event) {
this.files = event.target.files;
this.images = [...this.files].map(URL.createObjectURL);
},
removeImage: function () {
this.images = null
},
submitFile() {
let formData = new FormData();
for (var i = 0; i < this.files.length; i++) {
let file = this.files[i];
formData.append('files[' + i + ']', file);
}
axios.post('/multiple-files', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
}).then(function() {
console.log('SUCCESS!!');
})
.catch(function() {
console.log('FAILURE!!');
});
}
}
})
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<div id="app">
<h2>Multiple Files</h2>
<hr/>
<label>
<span>Files</span>
<input type="file" multiple @change="handleFileUploads($event)" />
<ul v-if="files.length">
<li v-for="(name, i) in filesNames" :key="i">{{ name }}</li>
</ul>
</label>
<div>
<img v-for="image in images" :src="image" />
<button v-if="images" @click="removeImage()" type="button">×</button>
</div>
<br />
<button @click="submitFiles()">Submit</button>
</div>
解决方案
推荐阅读
- java - 如何使用简单的junit测试测试方法(文件文件)的参数是否正确,如何测试文件名是否正确?
- sql - 元数据值字段的 SQL 查询组
- javascript - 播放 youtube iframe API 的视频,无法正常工作。我究竟做错了什么?
- r - 方差-协方差矩阵:cov(X) 和 t(X)X(1/n-1) 之间的差异
- c# - Unity中的夹具旋转问题
- java - 使用 Archunit 时如何忽略静态依赖项
- c - pidof 给出两个数字,即进程 id 或 pid。请告诉
- android - 如何在我的应用程序中安全地存储文件的内容?
- python - 如何在 PyYAML 转储()期间获得一致的报价?
- visual-studio-code - Visual Studio Code 显示错误:不允许使用属性阶段,不允许使用属性参数