位置: IT常识 - 正文

【vue 项目】el-upload 上传文件以及回显照片和下载文件(vue+element-ui项目)

编辑:rootadmin
【vue 项目】el-upload 上传文件以及回显照片和下载文件

推荐整理分享【vue 项目】el-upload 上传文件以及回显照片和下载文件(vue+element-ui项目),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue+ele,vue el-col,vue el-dialog,vue el-dialog,vue的el,vue的el,vue el-dialog,vue的el,内容如对您有帮助,希望把文章链接给更多的朋友!

本次需求是上传多种固定格式的文件,且回显的时候,图片可以正常显示,文件可以进行下载 主要采用element的el-upload组件实现

1、文件上传

先看下,上传文件效果图 点击上传将文件放到网页,还有一个点击确定的按钮再上传文件到服务器

html

<el-upload ref="upload" accept=".png,.jpg,.jpeg,.doc,.docx,.txt,.xls,.xlsx" action="#" multiple :limit="5" :headers="headers" :auto-upload="false" :file-list="fileList" :on-change="handleChange" :on-remove="removeFile" :on-exceed="limitCheck" > <el-button size="small" type="primary">点击上传</el-button> <div slot="tip" class="el-upload__tip"> <p>只支持.png / .jpg / .jpeg / .doc / .docx / .txt / .xls / .xlsx文件</p> <p>最多上传5个文件</p> </div> </el-upload>

1、accept:限制上传的文件类型 2、action: 必选参数,上传的地址,可以暂时设置为"#" 3、multiple: 设置选择文件时可以一次进行多选 4、limit:限制上传的文件的数量 5、auto-upload:是否自动上传,false为手动上传 (因为我需要和表单一起添加到服务器,所以点击上传时只是到页面,后面点击确定才到服务器) 需要注意:当:auto-upload="false"手动上传的时候,:before-upload="beforeUpload"上传前校验失效,两者不可以同时用,可以将校验加在:on-change里面 6、file-list:文件列表

【vue 项目】el-upload 上传文件以及回显照片和下载文件(vue+element-ui项目)

script 记得引入

import axios from 'axios'data() {return {// 上传附件 fileList: [], headers: { 'Content-Type': 'multipart/form-data' },}},methods: {// 文件状态改变时的钩子handleChange(file, fileList) { // 文件数量改变 this.fileList = fileList const isLt2M = (file.size / 1024 / 1024 < 2) if (!isLt2M) { this.$message.error('上传头像图片大小不能超过 2MB!') this.fileList.pop() } return isLt2M }, // 文件超出个数限制时的钩子 limitCheck() { this.$message.warning('每次上传限制最多五个文件') }, // 文件删除的钩子 removeFile(file, fileList) { this.fileList = fileList }, // 点击确定按钮 上传文件 confirm() { var param = new FormData() this.fileList.forEach((val, index) => { param.append('file', val.raw) }) // 拿取其他的信息 param.append('id', sessionStorage.getItem('id')) ... axios(`url......`, { headers: { 'Authorization': 'Bearer ' + sessionStorage.getItem('token'), 'Content-Type': 'multipart/form-data' }, method: 'post', data: param }).then((res) => { if (res.data.code === 200) { this.$message.success('上传成功') } else { this.$message.error('上传失败') } }) }}

2、文件回显

文件回显时,只展示上传的内容 如果上传图片,直接展示缩略图,可进行放大预览操作 如果上传其他文件,展示固定的图片(图片可自己设置),可在网页进行下载操作

html

<el-upload :file-list="fileList" action="#" list-type="picture-card" > <div slot="file" slot-scope="{file}"> <img class="el-upload-list__item-thumbnail" :src="file.url" alt="" > <span class="el-upload-list__item-actions"> // 下载 <span v-if="updataIf(file)" class="el-upload-list__item-delete" @click="handleDownload(file)" > <i class="el-icon-download" /> </span> // 放大预览 <span v-else class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)" > <i class="el-icon-zoom-in" /> </span> </span> </div> </el-upload> <el-dialog :visible.sync="dialogVisible" :append-to-body="true"> <img width="100%" height="100%" :src="dialogImageUrl" alt=""> </el-dialog>

script 记得引入

import axios from 'axios'data() {return {dialogImageUrl: '', dialogVisible: false, fileList: []}},created() {this.getDetail()},methods: {// 判断文件类型,图片预览,文件下载 updataIf(e) { if (e.fileName) { if (e.fileName.split('.')[1] === 'png' || e.fileName.split('.')[1] === 'jpeg' || e.fileName.split('.')[1] === 'jpg') { return false } else { return true } } else { if (e.name.split('.')[1] === 'png' || e.name.split('.')[1] === 'jpeg' || e.name.split('.')[1] === 'jpg') { return false } else { return true } } },// 获取详情getDetail() {this.fileList = []// 调用查询的接口......// 调用成功if (res.code === 200) {var arr = []// res.data.fileMap为返回的Object格式的文件数据// 因为返回的格式是 {name: url,name: url}// 循环转变成需要的数组格式,每个数组元素包含name、url、id// [{name: name,url: ulr,id: id},{name: name,url: ulr,id: id}]Object.keys(res.data.fileMap).forEach(key => { var obj = { name: '', url: '', id: '' } // 数组元素里面的name就是key obj.name = key // 数组元素里面的url,当时图片的时候直接用url // 当不为图片的时候,显示固定的图片,且传入id(id用于下载文件) if (key.split('.')[1] === 'png' || key.split('.')[1] === 'jpeg' || key.split('.')[1] === 'jpg') { obj.url = 'http://.../file/minio/view/chs/' + res.data.fileMap[key] } else { // 所有文件统一图片 obj.url = require('../../../assets/images/fileImg.png') obj.id = res.data.fileMap[key] } arr.push(obj) }) // 将组好的格式直接赋值给fileList(文件列表) this.fileList = arr} },// 放大预览handlePictureCardPreview(file) { this.dialogImageUrl = file.url this.dialogVisible = true }, // 文件下载 handleDownload(file) { axios(`url.......`, { headers: { 'Authorization': 'Bearer ' + sessionStorage.getItem('token'), 'Content-Type': 'application/octet-stream' }, methods: 'get', params: { id: file.id }, responseType: 'blob' }).then((res) => { if (res.status === 200) { const content = res.data const blob = new Blob([content]) const fileName = file.name if ('download' in document.createElement('a')) { // 非IE下载 const elink = document.createElement('a')// 创建一个a标签通过a标签的点击事件区下载文件 elink.download = fileName elink.style.display = 'none' elink.href = URL.createObjectURL(blob)// 使用blob创建一个指向类型数组的URL document.body.appendChild(elink) elink.click() URL.revokeObjectURL(elink.href) // 释放URL 对象 document.body.removeChild(elink) } else { // IE10+下载 navigator.msSaveBlob(blob, fileName) } } }).catch(res => { console.log(res) }) },}

关于type: “application/octet-stream“ 格式的数据并下载主要参考下面这篇文章 https://blog.csdn.net/qq_53145332/article/details/123595850?spm=1001.2014.3001.5506

style 隐藏el-upload上传

// 隐藏上传::v-deep .el-upload.el-upload--picture-card{ display: none;}// 隐藏右上角绿色标志::v-deep .el-upload-list__item-status-label{ display: none !important;}
本文链接地址:https://www.jiuchutong.com/zhishi/277869.html 转载请保留说明!

上一篇:圣伊莱亚斯国家公园中的铜河三角洲,阿拉斯加 (© Frans Lanting/plainpicture)(圣伊利亚斯山)

下一篇:echarts——实现3D地图+3D柱状图 效果——粗糙代码记录——技能提升(echarts w3c)

  • 苹果13已经激活了还能转移吗(苹果13已经激活了还能从安卓传数据吗)

    苹果13已经激活了还能转移吗(苹果13已经激活了还能从安卓传数据吗)

  • mpeg4和mp4格式一样吗(mpeg4和mp4格式一样吗怎么打开)

    mpeg4和mp4格式一样吗(mpeg4和mp4格式一样吗怎么打开)

  • 抖音怎么拍不了视频了(抖音怎么拍不了同款)

    抖音怎么拍不了视频了(抖音怎么拍不了同款)

  • 华为p30pro怎么打电话(华为p30pro怎么打开OTG功能)

    华为p30pro怎么打电话(华为p30pro怎么打开OTG功能)

  • 手机没电了微信运动还会记录吗(手机没电了微信语音通话能打通吗)

    手机没电了微信运动还会记录吗(手机没电了微信语音通话能打通吗)

  • 抖音本场点赞是什么意思(抖音本场点赞是音浪吗)

    抖音本场点赞是什么意思(抖音本场点赞是音浪吗)

  • 工作表窗口冻结包括什么(工作表窗口冻结怎么设置)

    工作表窗口冻结包括什么(工作表窗口冻结怎么设置)

  • 手机越来越费电怎么办(手机耗电太快怎么办)

    手机越来越费电怎么办(手机耗电太快怎么办)

  • 猫王收音机蓝牙灯不亮(猫王收音机蓝牙音箱)

    猫王收音机蓝牙灯不亮(猫王收音机蓝牙音箱)

  • 华为荣耀9x安兔兔跑分(荣耀9x安兔兔ai评测)

    华为荣耀9x安兔兔跑分(荣耀9x安兔兔ai评测)

  • 手机镜像功能在哪(手机 镜像)

    手机镜像功能在哪(手机 镜像)

  • 图形显卡和游戏显卡区别(图形显卡和游戏显卡可以一起用吗)

    图形显卡和游戏显卡区别(图形显卡和游戏显卡可以一起用吗)

  • 苹果的卡贴机什么意思(苹果卡贴机什么版本可以官解)

    苹果的卡贴机什么意思(苹果卡贴机什么版本可以官解)

  • 内存的主要特点之一是(内存的主要特点之一)

    内存的主要特点之一是(内存的主要特点之一)

  • mate30后置摄像头一样吗(mate30后置摄像头打不开)

    mate30后置摄像头一样吗(mate30后置摄像头打不开)

  • 黑金会员是什么(黑金会员是什么东西)

    黑金会员是什么(黑金会员是什么东西)

  • 芯片的主要作用(什么是芯片,芯片是干嘛的)

    芯片的主要作用(什么是芯片,芯片是干嘛的)

  • 手机怎么设置微信步数(手机怎么设置微信来信息不显示内容)

    手机怎么设置微信步数(手机怎么设置微信来信息不显示内容)

  • 手机固件什么意思(手机固件有什么用)

    手机固件什么意思(手机固件有什么用)

  • 手机苏宁易付宝在哪(手机苏宁易付宝怎么用)

    手机苏宁易付宝在哪(手机苏宁易付宝怎么用)

  • pr背景音乐如何逐渐变小声(pr怎么背景音乐)

    pr背景音乐如何逐渐变小声(pr怎么背景音乐)

  • 支付宝领流量怎么领取(支付宝领流量怎么关闭)

    支付宝领流量怎么领取(支付宝领流量怎么关闭)

  • 小米6无线充电设置(小米6无线充电吗)

    小米6无线充电设置(小米6无线充电吗)

  • 拼多多怎么隐藏自己买了什么(拼多多怎么隐藏手机号和姓名)

    拼多多怎么隐藏自己买了什么(拼多多怎么隐藏手机号和姓名)

  • 美团众包如何注册(美团众包如何注销银行卡)

    美团众包如何注册(美团众包如何注销银行卡)

  • 安装word后,如何设置新建写字板(microsoft word安装)

    安装word后,如何设置新建写字板(microsoft word安装)

  • 对方给我公司开的红字发票如何查询
  • 资产负债表的固定资产怎么计算
  • 公司基本户里的钱有利息吗
  • 一般纳税人能不能开3个点的专票
  • 财报一季度
  • 装订需要多长时间
  • 房产税和城市房地产税
  • 半成品原材料报废会计处理怎么做?
  • 关税现金流量表项目
  • 外贸企业采购货物会计分录
  • 进货费用会计科目
  • 出口退税信息系统
  • 外币折算买入价卖出价
  • 应交税费未交增值税是什么意思
  • 合理损耗算入账价值吗
  • 无票收入已报税,后来开票账务处理
  • 社保企业报盘是什么
  • 现金折扣通过财务费用核算
  • 结转本月销售成本的会计分录
  • 建账时选择什么会计制度
  • 询证函有法律效力吗
  • 蛋糕店盈亏平衡分析
  • tkinter美观界面
  • stk al00华为
  • 现在我们来看看windows中的新增内容
  • 固定资产转出是什么意思
  • 公司赞助商
  • 资产减值的会计政策
  • 土地承包费收入怎么做账务处理
  • 缴纳季度企业所得税比例
  • 企业迁址如何办理手续
  • 圆顶亭效果图
  • php framework框架
  • 工业企业制造费用包括
  • 购入多项固定资产
  • 给深度学习研究生的入门建议(未完待续ing)
  • lvm 命令
  • print函数php
  • 空调入固定资产几年折旧
  • 其他应收账款怎么做预算会计分录
  • 电子票开票人复核人一样有影响吗
  • 工业企业变压器容量费用
  • 原材料退库的会计分录
  • 收回以前年度多发奖金分录
  • 外贸客户付款方式
  • 个体户开电子发票怎么申请
  • 母公司持有子公司70%股权
  • 离职员工个税申诉企业怎么处理
  • 固定资产盘盈为什么计入管理费用
  • 劳务费怎么做账务处理
  • 企业汇算清缴的工资薪金支出是怎么填
  • 跨年发生退货税务处理
  • 现金付发票再摊销怎么算
  • 库存和结存
  • 认缴制下实收资本可以减少吗
  • 未完工工程如何验收
  • 提前还贷款要满十八岁吗
  • 银行承兑到期后怎么兑现
  • 刻章费发票怎么开
  • 企业增资的流程
  • 明细账设置是什么意思
  • Windows server 2003 最后一代cpu
  • sql server使用教程
  • CentOS 7中安装mysql server的步骤分享
  • mysql5.7免安装版配置
  • 苹果mac电脑删除打印机后还显示网络错误
  • macbook怎样充电
  • NPFMSG.exe - NPFMSG是什么进程 有什么用
  • win10edge浏览器怎么设置兼容模式
  • linux openfoam
  • unity的设置在哪里
  • 用批处理删除盘符
  • linux中sudo命令的使用方式和作用
  • angular ...
  • 环保税按次申报需要交滞纳金吗
  • 手机银行如何查询明细
  • 电子税务局做什么的
  • 国税局征收的税种有哪些?
  • A级纳税人和一般纳税人区别
  • 云票助手怎么查看开票限额
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设