element 中手动上传文件_element手动上传-程序员宅基地

技术标签: elementui  vue.js  javascript  

html:

      <div>

          <el-card class="box-card">

            <el-upload

              ref="upload"

              accept=".xls,.xlsx"

              action="#"

              :auto-upload="false"

              :multiple="false"

              :file-list="fileList"

              :before-upload="beforeUpload"

              :http-request="uploadHttpRequest"

              :on-remove="fileRemove"

              :on-change="fileChange"

            >

              <img class="upImg" src="../../style/img/up.png" alt="" />

              <el-button class="buttonUp" type="primary">上传excel</el-button>

              <div class="el-upload__text">或者拖放一个文件</div>

            </el-upload>

          </el-card>

          <div class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>

        </div>

        <div><el-button style="width: 450px; margin: 20px auto; padding: 15px" type="primary" @click="submitUpload">确认上传</el-button></div>

js:

 methods: {

    beforeUpload(file) {

      //文件类型

      const isType = file.type === 'application/vnd.ms-excel'

      const isTypeComputer = file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'

      const fileType = isType || isTypeComputer

      if (!fileType) {

        this.$message.error('上传文件只能是xls/xlsx格式!')

      }

      // 文件大小限制为10M

      const fileLimit = file.size / 1024 / 1024 < 10

      if (!fileLimit) {

        this.$message.error('上传文件大小不超过10M!')

      }

      return fileType && fileLimit

    },

    // 自定义上传方法,param是默认参数,可以取得file文件信息,具体信息如下图

    uploadHttpRequest(param) {

      const formData = new FormData() //FormData对象,添加参数只能通过append('key', value)的形式添加

      formData.append('file', param.file) //添加文件对象

      formData.append('uploadType', this.is_type)//接口要传的参数

      // 调用接口api

      importData(formData).then((data) => {

        if (data.code == 200) {

          this.msgSuccess('成功')

          param.onSuccess() // 上传成功的文件显示绿色的对勾

          this.fileList = []

          this.is_type = ''

        } else {

          this.msgError(data.msg)

        }

      })

    },

    // 点击上传:手动上传到服务器,此时会触发组件的http-request

    submitUpload() {

      this.$refs.upload.submit()

    },

    // 文件发生改变

    fileChange(file, fileList) {

      if (fileList.length > 0) {

        this.fileList = [fileList[fileList.length - 1]] // 展示最后一次选择的文件

      }

    },

    // 移除选择的文件

    fileRemove(file, fileList) {

      if (fileList.length < 1) {

        this.uploadDisabled = true //未选择文件则禁用上传按钮

      }

    },

    // 取消

    closeDialog() {

      this.$refs.upload.clearFiles() //清除上传文件对象

      this.fileList = [] //清空选择的文件列表

      this.$emit('close', false)

    },

  },

图片

页面:

 

html:

 

js:

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_51426266/article/details/125082752

智能推荐

NBA2K22 李景亮面补-程序员宅基地

文章浏览阅读202次。NBA2K22 李景亮面补。

SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame 解决方法_settingwithcopywarning: a value is trying to be se-程序员宅基地

文章浏览阅读2.5w次,点赞33次,收藏29次。1、首先展示下遇到的问题截图2、然后跟着这个错误的报错信息,点开下面链接有兴趣研究可以点开https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy蹩脚英语看半天没看明白,转战为自己研究3、简单代码复现问题~~~df = pd.DataFrame(np.random.randint(1,10,(4,5)),columns=["A._settingwithcopywarning: a value is trying to be set on a copy of a slice fro

s7-200 smart 运动控制_西门子s7-200smart脉冲输出控制伺服程序-程序员宅基地

文章浏览阅读5.7k次,点赞5次,收藏8次。需求:1-使用PLC发送脉冲控制伺服驱动器,驱动伺服电机,带动与齿轮带连接的伸缩杆定位;要求:1-位置可调;2-速度可调; 3-显示位置、速度状态;4-断电位置保持。一、资料查看1- S7-200 SMART CPU 提供了三种开环运动控制方法:运动控制向导,PTO(脉冲串输出)及PWM(脉宽调制);通过PROFINET连接V90实现基本定位控制从STEP 7-Micro/WIN SMART V2.4 和 S7-200 SMART PLC固件版本 V2.4开始增加了 PROFINET通..._西门子s7-200smart脉冲输出控制伺服程序

关于印发《测绘地理信息质量管理办法》的通知-程序员宅基地

文章浏览阅读1k次。关于印发《测绘地理信息质量管理办法》的通知来源: 国家测绘地理信息局国土测绘司 时间:2015-07-02 14:59:41 【大 中 小】国测国发〔2015〕17号各省、自治区、直辖市、计划单列市测绘地理信息行政主管部门,新疆生产建设兵团测绘地理信息主管部门:《测绘地理信息质量管理办法》已经国家测绘地理信息局局务会议审议通过,现予印发,请认真贯彻执行。经商国家质量监督检验检疫总局同意,1997_测绘地理信息质量管理办法

只需十四步:从零开始掌握Python机器学习(附资源)_python机器学习赵涓涓-程序员宅基地

文章浏览阅读211次。Python 可以说是现在最流行的机器学习语言,而且你也能在网上找到大量的资源。你现在也在考虑从 Python 入门机器学习吗?本教程或许能帮你成功上手,从 0 到 1 掌握 Python 机器学习,至于后面再从 1 到 100 变成机器学习专家,就要看你自己的努力了。本教程原文分为两个部分,机器之心在本文中将其进行了整合,原文可参阅:suo.im/KUWgl 和 suo.im/96wD3。本教程..._python机器学习赵涓涓

实时增量备份工具(rsync –daemon + inotify tools)-程序员宅基地

文章浏览阅读713次,点赞15次,收藏9次。实时增量备份工具(rsync –daemon + inotify tools)

随便推点

Trex--高性能压测的dream tools-程序员宅基地

文章浏览阅读1.8k次。Trex 数据面基于DPDK实现,通过json-rpc的方式对外暴露控制接口,client端支持CLI/PYTHON SDK/Gui三种方式,对程序员而言,python sdk肯定是首选,基于python sdk,包个自动化压测工具,自动为每个版本提供各种场景的性能测试数据还是挺爽的。“简单的有状态”,比如对同个五元组,先通过SYN报文建连接,再持续打一段时间的ACK报文,最终发RST/SYN报文,trex的stream间可以有先后依赖关系,通过多条stream即可支持。领取,关注我持续更新哦!_trex

数据结构初阶——环形链表-程序员宅基地

文章浏览阅读480次。哈哈哈~~其实也就是带环的链表啦~~或者是这样:因此,环形链表有个特性,就是没有 tail,指针一旦进入环形部分,就是死循环,永远走不出来。_环形链表

信用卡新颖的攻击方式,黑客可非接触式卡进行交易-程序员宅基地

文章浏览阅读172次。网络安全研究人员披露了一种新颖的攻击方式,它可能使黑客欺骗销售点终端以使其与受害者的万事达卡非接触式卡进行交易,同时认为该卡是Visa卡。该研究报告是由国内知名网络安全组织东方联盟研究人员发表的,该研究报告是建立在去年9月进行的一项详细研究的基础上的,该研究涉及PIN旁路攻击,使不良行为者可以利用受害者的被盗或丢失的启用Visa EMV的信用卡来制造高价值在不知道卡PIN的情况下进行购买,甚至欺骗终端接受未经认证的离线卡交易。研究人员表示:“黑客可以将其与先前对Visa的攻击结合使用,从而绕过万

Java设计模式之行为型:状态模式_java中状态设计模式案例-程序员宅基地

文章浏览阅读1.1w次,点赞6次,收藏29次。在介绍状态模式之前,我们先来看这样一个实例:你公司力排万难终于获得某个酒店的系统开发项目,并且最终落到了你的头上。下图是他们系统的主要工作(够简单)。当你第一眼看到这个系统的时候你就看出来了这是一个状态图,每个框框都代表了房间的状态,箭头表示房间状态的转换。分析如下:房间有三个状态:空闲、已预订、已入住,状态与状态之间可以根据客户的动作来进行转换。定义每个状态的值。 publ..._java中状态设计模式案例

JavaScript — 原生js实现上传图片控件_js利用class实现上传图片组件-程序员宅基地

文章浏览阅读2.6k次,点赞2次,收藏15次。一、修改原生 input 样式html 结构<div class="card"> <input id="upload" type="file" accept=".jpg" /> <div class="view"> <!-- 上传成功后 --> <div id="imgContainer" class="img-container"> <img id="img" /&_js利用class实现上传图片组件

是德科技KEYSIGHT E4980A精密性LCR测试仪_keysight 4070电容测试精度-程序员宅基地

文章浏览阅读370次,点赞10次,收藏9次。此外,它还具有多种测量模式,可以根据不同的测试需求进行灵活的配置和使用。此外,它还具有很高的测量速度和采样率,可以在短时间内完成大量的测试和数据采集。它具有高精度、高稳定性和高分辨率的测量特点,可以满足各种电子元件和材料的分析和测试需求。此外,它还具有自动校准和校准验证功能,可以保证测量的准确性和可靠性。此外,它还具有自动校准和校准验证功能,可以保证测量的准确性和可靠性。它是一款四端仪器,可以测量电阻、电容和电感等元件的阻抗、相位和品质因数等参数,适用于各种电子元件和材料的分析和测试。_keysight 4070电容测试精度