如何用elementUI优雅地上传图片并实现预览和拖拽
在Vue.js中使用Element UI库上传并预览图片,并能实现拖拽,可以使用el-upload
组件和el-image
组件。以下是一个简单的例子:
<template>
<div>
<el-upload
action="https://jsonplaceholder.typicode.com/posts/"
list-type="picture-card"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
:file-list="fileList"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<el-image :src="dialogImageUrl" fit="contain"></el-image>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
dialogImageUrl: '',
dialogVisible: false,
fileList: []
};
},
methods: {
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
}
}
};
</script>
在这个例子中,el-upload
组件用于上传图片,并通过drag
属性实现拖拽上传。list-type="picture-card"
设置了图片卡片的展示方式。on-preview
用于定义预览图片时的行为,on-remove
用于定义移除文件时的行为。file-list
保存了已上传的文件列表。
el-dialog
组件用于显示放大的图片,dialogVisible
控制对话框的显示与隐藏。
请注意,action
属性应设置为处理上传的服务器地址。在这个例子中,我使用了一个假的API地址"https://jsonplaceholder.typicode.com/posts/",你应该替换为你的实际上传API。
这个例子提供了基本的上传和预览功能,并实现了拖拽上传。你可以根据实际需求进一步扩展和自定义。
评论已关闭