el-upload 只能上传一个文件(完整适用方法),包括:新文件替换原文件方法。

这篇具有很好参考价值的文章主要介绍了el-upload 只能上传一个文件(完整适用方法),包括:新文件替换原文件方法。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

html:

<!-- multiple(单次多个上传时添加) : 每次上传多个文件时,打开 。配合 limit 属性使用:每次可上传文件的最大数量-->
<el-upload ref="upload" :limit="1" accept=".pdf" :headers="upload.headers" :action="upload.url +upload.id "
    :disabled="upload.isUploading" :on-change="changeUpload" :on-progress="handleFileUploadProgress"
    :on-success="handleFileSuccess" :on-error='handleFileError' :auto-upload="false" drag>
    <i class="el-icon-upload"></i>
    <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
    <div class="el-upload__tip txt_center" slot="tip">
    <span>仅允许导入<b> pdf格式 </b>文件,单次只可上传1个pdf文件</span>
    </div>
</el-upload>

js:

import { getToken } from "@/utils/auth";

data() {
    return {
    // 导入参数
    upload: {
        // 是否显示弹出层(导入)
        open: false,
        // 弹出层标题(导入)
        title: "",
        // 是否禁用上传
        isUploading: false,
        // 是否更新已经存在的用户数据
        updateSupport: 0,
        // 设置上传的请求头部
        headers: {
        Authorization: "Bearer " + getToken()
        },
        // 上传的地址
        url: process.env.VUE_APP_BASE_API + "/system/user/importData"
    },
    }
},
methods: {
    // 只能上传单个文件,选择文件覆盖原有文件
    changeUpload(file, fileList) {
    if (fileList.length > 1 && file.status !== "fail") {
        fileList.splice(0, 1);
    // 多选并上传多个文件:
    // 方法一:fileList.splice(0, n)。n:多选文件的数量。--数组从前往后顺序截取。
    // 方法二:fileList.splice(0, -n)。n:多选文件的数量。--数组从后往前顺序截取(保留最新上传的,截去之前上传的。--方法一反之)
    } else if (file.status === "fail") {
        this._err("上传失败,请重新上传!");
        fileList.splice(0, 1);
    }
    },
    // 上传文件 - 文件上传中处理
    handleFileUploadProgress(event, file, fileList) {
    // multiple属性(单次可上传多个文件),可打开注释部分,功能为:上传第一个文件开始,isUploading 置为 true,到最后一个文件上传完成,isUploading 变为 fasle。否则控制台会报 "status" 的错
    // if (file == fileList[0]) {
    this.upload.isUploading = true;
    // }
    },
    // 上传文件 - 文件失败处理
    handleFileError(event, file, fileList) {
    // multiple属性(单次可上传多个文件),可打开注释部分,功能为:上传第一个文件开始,isUploading 置为 true,到最后一个文件上传完成,isUploading 变为 fasle。否则控制台会报 "status" 的错
    // if (file == fileList[0]) {
    // this.upload.isUploading = false;
    // }
    },
    // 上传文件 -  文件上传成功处理
    handleFileSuccess(res, file, fileList) {
    console.log(34, file, fileList)
    if (res.code == 200) {
        //  multiple属性(单次可上传多个文件),可打开注释部分,功能为:最后一个文件上传完成后,清空列表。
        //   if (file == fileList[fileList.length - 1]) {
        // 清空上传文件列表,否则影响上传文件数限制判断
        this.$refs.upload.clearFiles();
        //   }
        //   this._success('上传成功')//提示语:上传成功。根据实际情况来
        this.getList() //刷新列表。根据实际情况来
    } else {
        // 同上
        //   if (file == fileList[fileList.length - 1]) {
        // 清空上传文件列表,否则影响上传文件数限制判断
        this.$refs.upload.clearFiles();
        //   }
        this._err(res.msg)
    }
    this.upload.open = false;
    // 不在上面 if else 中控制,也可以放在这里。功能同上。
    // if (file == fileList[fileList.length - 1]) {
    //   // 上传第一个文件开始,isUploading 置为 true,到最后一个文件上传完成,isUploading 变为 fasle。否则控制台会报 "status" 的错
    this.upload.isUploading = false;
    // }
    },
    // 上传文件 - 提交上传文件
    submitFileForm() {
    this.$refs.upload.submit();
    },
}

auth文件:文章来源地址https://www.toymoban.com/news/detail-536556.html

import Cookies from 'js-cookie'//需先npm install js-cookie 安装,安装后package.json文件中会有"js-cookie": "3.0.1"安装版本的显示。

const TokenKey = 'Admin-Token'

const ExpiresInKey = 'Admin-Expires-In'

// 此方法为vue文件中引入的 getToken() 方法
export function getToken() {
  return Cookies.get(TokenKey)
}

export function setToken(token) {
  return Cookies.set(TokenKey, token)
}

export function removeToken() {
  return Cookies.remove(TokenKey)
}

export function getExpiresIn() {
  return Cookies.get(ExpiresInKey) || -1
}

export function setExpiresIn(time) {
  return Cookies.set(ExpiresInKey, time)
}

export function removeExpiresIn() {
  return Cookies.remove(ExpiresInKey)
}

到了这里,关于el-upload 只能上传一个文件(完整适用方法),包括:新文件替换原文件方法。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • el-upload 文件上传组件的使用

    element-ui官网 element ui=upload上传组件 Upload 上传文件这个功能是我们在企业实际开发当中使用频率是非常高的这样一个文件上传的功能,,element ui组件组也给我们提供了上传的组件。所有我们一定要熟悉掌握它 使用之前先进行一下element ui的安装和配置 打开终端=输入npm i elem

    2024年02月11日
    浏览(23)
  • vue 使用 el-upload 上传文件(自动上传/手动上传)

    vue 使用 el-upload 上传文件(自动上传/手动上传) 上传 上传

    2024年02月13日
    浏览(25)
  • el-upload自定义上传文件显示进度条

    el-upload自定义上传文件时需要显示进度条,但使用 http-request 会覆盖默认的上传行为, on-progress 也就不生效了,所以可以 自定义上传的实现 。 按钮 数据 事件 导入接口 接口方法 uploadEvent ——在封装的axios请求方法的headers里面加入即可(关键)

    2024年02月15日
    浏览(22)
  • el-upload实现上传文件并展示进度条

    el-upload在实现文件上传时无法触发on-progress钩子,即使调用后端接口并成功的情况下都无法触发,可以通过如下配置来解决: 随后将config添加至调用后端接口,即可成功获取进度~ html: JS部分

    2024年02月04日
    浏览(19)
  • 使用el-upload组件实现递归多文件上传

    一、需求描述:在页面上点击按钮弹出选择电脑文件的界面,可以一次性选择多个文件一起上传到服务器上,并把上传成功的文件展示在页面上。 · 二、 问题阐述:el-upload是支持多文件上传的,但是是同步进行的,你点击上传按钮,选择了多个文件后点击确定,会同时调用

    2023年04月08日
    浏览(17)
  • el-upload批量手动上传,并用form表单校验上传文件

    手动上传设置:auto-upload=\\\"false\\\"

    2024年02月14日
    浏览(24)
  • element-ui文件上传el-upload

            element-ui官网中有文件上传         首先先展示一下我页面的实现效果,如下图所示:          从图中可以看出,我这边实现的是一个可显示进度条的文件上传操作,而且如果上传的文件很大等,还可以中断文件上传。         值得注意的是,如果有添

    2024年02月05日
    浏览(21)
  • element ui ---- el-upload实现手动上传多个文件

    ui部分 js 实现上传

    2024年02月15日
    浏览(25)
  • Element之el-upload多文件一次性上传

    方法一: 页面展示: Html部分代码: accept 用于限制允许上传哪些类型文件 name 上传的文件字段名  (默认为 file) multiple 是否支持多选文件 action 必选参数,上传的地址 headers 设置上传的请求头部 file-list 上传列表 auto-upload 是否在选取文件后立即进行上传 主要逻辑: 1. 多选文

    2024年02月11日
    浏览(20)
  • 【学习记录21】Vue+ElementUI el-upload多文件上传,一次请求上传多个文件!

    前情回顾说点废话。。。 1、项目当中遇到需要上传多个图片,一次选取多个图片。但是吧el-upload默认只能一个一个传,每次上传成功还的自己去push,一个一个去判断。 2、关键是后台给的接口,要一次性接收一堆,无奈之下只能去网上搜索,大佬们都是给的代码片段无法直

    2024年02月12日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包