elementUI+el |
您所在的位置:网站首页 › 怎样删除已下载文件的图片 › elementUI+el |
Upload 上传组件的使用
官方文档链接使用el-upload组件上传文件具体参数说明,如何实现上传、下载、删除等功能获取文件列表进行file-list格式匹配代码
文件展示列表自定义为表格展示使用的具体参数说明文件大小展示问题(KB/MB)文件下载代码
上传文件大小与文件类型校验
官方文档链接
官方文档 https://element.eleme.cn/#/zh-CN/component/upload 使用el-upload组件上传文件action:文件上传地址,我的项目里已经封装好了请求。使用的时候需要依据项目填写。 show-file-list: 是否显示已上传文件列表。 headers:设置上传的请求头部。我的项目需要传token。 on-preview:点击文件列表中已上传的文件时的钩子。 可以在这个这个回调方法里写下载功能部分代码,实现点击文件下载功能。 on-remove:文件列表移除文件时的钩子。 在文件列表回显时,使用数组fileData记录id列,执行删除回调时,匹配id,因为删除回调方法返回的file中不记录id,只记录url,可通过url相同返回id,再调用删除接口。 on-success: function(response, file, fileList) 文件上传成功时的钩子。 如果不设置auto-upload:false ,则选取文件后立即进行上传,成功回调后使用返回的参数调用接口,完成文件上传。 获取文件列表进行file-list格式匹配 file-list :上传的文件列表, 例如: [{name: ‘food.jpg’, url: ‘https://xxx.cdn.com/xxx.jpg’}]列表回显时,需要将返回列表对应参数赋值给file-list对应的数组fileData 。 代码 上传文件 import { getObj, addObj, putObj, fetchList, getnoticeId, delObj } from '@/api/policy/noticeattachment' import store from '@/store' import {mapState} from 'vuex' export default { data() { return { dataForm: { id: 0, noticeId: '', attachName: '', attachUrl: '', }, dataList: [], fileData: [], headers: { 'Authorization': 'Bearer ' + store.getters.access_token, }, } }, methods: { init(id) { // console.log(id) this.dataForm.noticeId = id //数组每次需要清空 this.fileData.splice(0, this.fileData.length); this.$nextTick(() => { this.$refs['dataForm'].resetFields(); if (this.dataForm.noticeId) { getnoticeId(this.dataForm.noticeId).then(response => { this.dataList = response.data.data; this.dataList.forEach(list => { this.fileData.push({ name: list.attachName, url: list.attachUrl, id: list.id //删除时使用 }) }) }); } }); }, //移除回调 handleRemove(file, fileList) { let resultArr = this.fileData.filter((item) => { return item.url === file.url }); // console.log(resultArr[0]) this.dataForm.id = resultArr[0].id this.$nextTick(() => { this.deleteHandle(this.dataForm.id) }) }, //点击文件列表中已上传的文件时的钩子 handlePreview(file) { console.log(file); var a = document.createElement('a'); var event = new MouseEvent('click'); a.download = file.name; a.href = file.url; a.dispatchEvent(event); }, //成功回调 handleAvatarSuccess(res, file, fileList) { this.dataForm.attachName = file.name this.dataForm.attachUrl = res.data.url this.dataFormSubmit() }, // 删除 deleteHandle(id) { delObj(id).then(data => { this.$message.success('删除成功') }) }, // 表单提交 dataFormSubmit() { this.$refs['dataForm'].validate((valid) => { if (valid) { if (this.dataForm.id) { putObj(this.dataForm).then(data => { this.$message.success('修改成功') }); } else { addObj(this.dataForm).then(data => { this.$message.success('添加成功') }) } } }) } } } 文件展示列表自定义为表格展示我自己的项目里暂时没有限制,后续有需求的话会进行更新。这里不做过多概述。 下面po官网代码: export default { data() { return { imageUrl: '' }; }, methods: { handleAvatarSuccess(res, file) { this.imageUrl = URL.createObjectURL(file.raw); }, beforeAvatarUpload(file) { const isJPG = file.type === 'image/jpeg'; const isLt2M = file.size / 1024 / 1024 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |