vue2+elementui上传照片(el-upload 超简单)

简介: 【6月更文挑战第4天】element上传附件(el-upload 超详细)这个功能其实比较常见的功能,后台管理系统基本上都有,这就离不开element的el-upload展示:

element上传附件(el-upload 超详细)

这个功能其实比较常见的功能,后台管理系统基本上都有,这就离不开element的el-upload

展示:

代码展示

html代码

<el-upload class="upload-demo" :on-preview="handlePreview" :on-remove="handleRemove" action=""
                        :before-remove="beforeRemove" multiple :limit="1" :on-exceed="handleExceed" :file-list="fileList"
                        :http-request="httpRequest">
                        <el-button size="small" type="primary">点击上传</el-button>
                        <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>

data中

fileList: [{ name: 'food.jpeg', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100' }]

methods中

//实现图片上传功能
        httpRequest(item) {
            // var imgId = item.file.lastModified
            console.log(item.file.name);
            this.fileList[0].name = item.file.name
            var formData = new FormData()
            formData.append('file', item.file)
            // {
            //         // 设置请求头为 multipart/form-data
            //         headers: {
            //             'Content-Type': 'multipart/form-data'
            //         },
            //         // // 上传进度
            //         // onUploadProgress: progressEvent => {
            //         //     let percent = ((progressEvent.loaded / progressEvent.total) * 100) | 0
            //         //     //调用onProgress方法来显示进度条,需要传递个对象 percent为进度值
            //         //     item.onProgress({ percent: percent })
            //         // }
            //     }
            upload(formData)
                .then(res => {
                    this.fileList[0].name = item.file.name
                    console.log(res);
                })
                .catch(() => { })
        },
        handleRemove(file, fileList) {
            console.log(file, fileList);
        },
        handlePreview(file) {
            console.log(file);
        },
        handleExceed(files, fileList) {
            this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
        },
        beforeRemove(file, fileList) {
            return this.$confirm(`确定移除 ${file.name}?`);
        },

接口写法

// 上传图片
export function upload(data) {
  return request({
    url: '/upload',
    method: 'post',
    data,
    headers: {
      'Content-Type': 'multipart/form-data'
    },
  })
}

总结

这个功能确实是非常常见的,尤其在后台管理系统中,文件上传功能几乎是标配。而Element UI,作为一个基于 Vue 的高质量 UI 组件库,其 el-upload 组件提供了非常便捷的文件上传功能。

el-upload 组件允许开发者轻松地实现文件选择、上传、预览以及错误处理等功能。通过简单的配置和事件监听,开发者可以定制上传按钮的样式、上传进度显示、上传成功或失败后的回调函数等。此外,el-upload 还支持多种上传方式,如拖拽上传、多文件上传等,极大地丰富了用户的使用体验。

在后台管理系统中,文件上传功能通常与表单管理、用户管理等模块紧密结合。例如,管理员可能需要上传用户头像、更新系统配置文件、导入导出数据等。在这些场景中,el-upload 组件都能够发挥出其强大的作用。

除了基本的文件上传功能外,开发者还可以结合后端接口,实现更加复杂的文件处理逻辑,如文件校验、断点续传、文件加密等。这些高级功能可以进一步提升文件上传的效率和安全性,满足各种复杂的业务需求。

el-upload 组件作为 Element UI 中的一个重要组件,为开发者提供了便捷、高效的文件上传解决方案。无论是在后台管理系统中,还是在其他需要文件上传功能的场景中,它都能够发挥出其独特的优势,帮助开发者快速构建出稳定、可靠的文件上传功能。

您好,我是肥晨。

欢迎关注我获取前端学习资源,日常分享技术变革,生存法则;行业内幕,洞察先机。

目录
相关文章
|
7月前
|
JavaScript
vue element plus 上传图片
vue element plus 上传图片
80 0
|
7月前
elementUI el-upload上传组件实战使用
elementUI el-upload上传组件实战使用
|
资源调度 JavaScript
vue3 vant上传图片
vue3 vant上传图片
448 0
|
JavaScript
【ElementUI】Vue+ElementUI多文件上传,一次请求上传多个文件!
教大家一次请求,上传多个文件。 ElementUI如果是默认方案,上传多张图片并不是真正的一次上传多张,而是发送多次请求,一次请求携带一张图片。
1028 0
|
4月前
在 Vue3 + ElementPlus 项目中使用 el-autocomplete 控件
本文介绍了在Vue3 + ElementPlus项目中如何使用`el-autocomplete`控件实现自动补全输入功能,并探讨了不同版本ElementPlus中`clearable`属性的兼容性问题。
489 0
在 Vue3 + ElementPlus 项目中使用 el-autocomplete 控件
|
7月前
|
JavaScript
【vue】 element upload文件上传后表单校验信息还存在
【vue】 element upload文件上传后表单校验信息还存在
303 1
|
7月前
|
JavaScript 前端开发
vue element plus Upload 上传
vue element plus Upload 上传
166 0
|
资源调度 JavaScript 数据处理
vue3 element组件上传图片
vue3 element组件上传图片
569 0
|
7月前
|
计算机视觉
vue3图片上传---vant
vue3图片上传---vant
234 0
|
7月前
|
计算机视觉
vue3 element图片上传案例
vue3 element图片上传案例
124 0