ElementUi文件上传组件、查看图片组件封装及运用
<template>
<div>
<!-- 图片预览对话框 -->
<el-dialog :visible.sync="dialogVisible">
<img :src="dialogImageUrl" alt="图片预览" class="preview-img"/>
</el-dialog>
<!-- 图片上传组件 -->
<el-upload
:action="uploadUrl"
list-type="picture-card"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
:on-success="handleSuccess"
:file-list="fileList"
:before-upload="beforeUpload">
<i class="el-icon-plus"></i>
</el-upload>
</div>
</template>
<script>
export default {
data() {
return {
uploadUrl: 'https://your-upload-api.com/upload', // 替换为你的上传API
fileList: [], // 存储上传的文件列表
dialogVisible: false, // 控制图片预览对话框的显示
dialogImageUrl: null, // 当前预览的图片URL
};
},
methods: {
// 触发图片预览
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
// 移除图片
handleRemove(file, fileList) {
// 移除操作的回调,例如可以在这里发起删除服务器上的图片文件的请求
},
// 图片上传成功
handleSuccess(response, file, fileList) {
// 上传成功的回调,例如可以在这里更新fileList
},
// 上传前的验证
beforeUpload(file) {
const isJPG = file.type === 'image/jpeg';
const isLT2M = file.size / 1024 / 1024 < 2;
if (!isJPG) {
this.$message.error('上传头像图片只能是 JPG 格式!');
}
if (!isLT2M) {
this.$message.error('上传头像图片大小不能超过 2MB!');
}
return isJPG && isLT2M;
},
},
};
</script>
<style scoped>
.preview-img {
width: 100%;
height: auto;
display: block;
}
</style>
这段代码展示了如何使用Element UI的<el-upload>
组件来实现图片的上传功能,并使用<el-dialog>
组件来实现图片的预览功能。同时,代码中包含了图片类型和大小的验证,以确保只有符合规定的图片才能被上传。这是一个非常实用的组件封装和运用案例,适用于各种需要图片上传和预览功能的Web应用。
评论已关闭