基于element-ui 使用 upload 预览图片 (含删除功能)
时间: 2023-08-03 11:33:38 浏览: 77
好的,我可以为你提供代码示例,但在开始前,请确认你已经安装了element-ui和vue。
首先,需要在你的组件中引入element-ui的Upload组件和Message组件:
```javascript
<template>
<div>
<el-upload
class="upload-demo"
ref="upload"
action="/upload"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-upload="beforeUpload"
multiple
:file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">jpg/png文件,文件大小不能超过2MB</div>
</el-upload>
</div>
</template>
<script>
import { Message, Upload } from 'element-ui';
export default {
components: { Upload },
data() {
return {
fileList: []
}
},
methods: {
handlePreview(file) {
console.log(file);
},
handleRemove(file, fileList) {
const index = fileList.indexOf(file);
fileList.splice(index, 1);
},
beforeUpload(file) {
const isJPG = file.type === 'image/jpeg' || file.type === 'image/png';
const isLt2M = file.size / 1024 / 1024 < 2;
if (!isJPG) {
Message.error('上传图片只能是 JPG/PNG 格式!');
}
if (!isLt2M) {
Message.error('上传图片大小不能超过 2MB!');
}
return isJPG && isLt2M;
}
}
}
</script>
```
在这个示例中,我们使用了`<el-upload>`标签来创建一个上传组件,并设置了一些属性来配置它的行为。其中,`fileList`属性用于存储上传的文件列表,`multiple`属性表示可以同时上传多个文件,`before-upload`属性用于验证上传的文件是否符合要求,`on-preview`属性用于预览上传的图片,`on-remove`属性用于删除上传的文件。
在`beforeUpload`函数中,我们使用了element-ui的`Message`组件来提示用户上传的文件是否符合要求。如果不符合要求,上传会被阻止。在`handleRemove`函数中,我们使用了`fileList`数组的`splice()`方法来删除文件。在`handlePreview`函数中,我们将文件对象打印到控制台上,你可以在这里进行图片预览操作。
希望这个示例能够对你有所帮助!
阅读全文