antd的upload组件的各种上传、下载操作(vue)

这篇具有很好参考价值的文章主要介绍了antd的upload组件的各种上传、下载操作(vue)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  作为前端小白刚刚接触上传、下载文件的操作也让我很头疼,所以利用时间记录一下方便巩固,希望能够帮到大家。

  我将情况分为以下几种:

1.点击按钮上传单个文件

//html
<a-upload
                :action="baseUrl + '/api/uploadSingleFile'" 
                :headers="headers"
                :file-list="fileList"
                @change="handleChange_file">
                <a-button>
                  <a-icon type="upload" /> 上传文件
                </a-button>
</a-upload>
//action表示上传的地址,baseUrl是我们公司服务器的IP地址,加上后面的接口地址就组成了完整的上传地址
//headers表示设置上传的请求头部,因为是后台管理系统所以会在里面存放必要的token
//file-list 就是我们上传文件的数组,一个文件就是一个数组元素
//@change就是提交文件的回调


//data
{
  baseUrl: baseUrl,
  headers: { accesstoken: sessionStorage.getItem("accessToken") },
  fileList:[],
  fileList2:[]
}
//这里除了fileList要需要fileList2的原因是:如果上传按钮下需要展示文件列表就必须是
{
   url: res,
   status: "done",
   name: res,
   uid: index + 1,
}
的对象形式,我们用fileList2来存储文件的下载链接也就是fileList中url的res

//methods
    handleChange_file(info) {
      let fileList = [...info.fileList];
      //这一行用来决定上传文件的限制个数,-1就表示1个,-2就是2个依次类推...
      fileList = fileList.slice(-1);
      //这里判断文件是否上传成功
      if (info.file.status === "done") {
        //判断是否正确链接上传地址
        if (info.file.response.code == 0) {
          let arr = fileList;
          this.fileList2 = [];
          //上传成功会把接口返回的下载链接存入fileList2
          arr.forEach((item) => {
            if (item.url) {
            this.fileList2.push(item.url);
          } else if (item.response) {
            this.fileList2.push(item.response.data);
          }
          });
          this.$message.success(`${info.file.name} 上传成功!`);
        }
        //如果是移除文件也会重新填入fileList2
      } else if (info.file.status === "removed") {
        let arr = fileList;
        this.fileList2 = [];
        arr.forEach((item) => {
           if (item.url) {
            this.fileList2.push(item.url);
          } else if (item.response) {
            this.fileList2.push(item.response.data);
          }
        });
      }
      this.fileList = [...fileList]; //重点
    },

2.点击按钮上传多个文件

上面就说过了,把antd的upload组件的各种上传、下载操作(vue)中的数字换一下就行了。

3.上传单个按钮但是不想显示文件列表

 antd的upload组件的各种上传、下载操作(vue)

antd会像这样上传成功后自动生成列表,但是有时候我们不需要,我们在a-upload下填入

:showUploadList="false"  属性就可以了

4.下载文件(单个)

一般通过动态创建a标签,给url的地址改为文件下载地址就可以了

const a = document.createElement("a");
          a.href = record.filePath;
          document.body.appendChild(a);
          a.click();
          document.body.removeChild(a);

5.下载文件(多个)

一般是通过upload组件把文件列表展示出来,这样一点击就可以下载了

clickModel(record) {
      this.visible = true;
      this.fileList = [];
      let arr = record.filePath;
      arr.forEach((res, index) => {
        this.fileList.push({
          url: res,
          status: "done",
          name: res,
          uid: index + 1,
        });
      });
    },
//这里调用的是a-modal的回调让modal悬浮框显示出来同时,在文件列表中放入我们需要的文件。
//一定要严格按照 url + status + name + uid 的格式。

  之后遇到新问题我会再次追加,欢迎大家讨论。文章来源地址https://www.toymoban.com/news/detail-435750.html

到了这里,关于antd的upload组件的各种上传、下载操作(vue)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • react18中antd的Upload组件上传头像,并且拿到服务器返回的头像的url地址在页面中显示头像

    业务需求:上传头像,上传完毕后拿到头像的url,把头像展示在页面中,最终把头像url和其他用户信息一起发送给服务器   上传头像流程   导入 Upload 组件和图标(一个加号,一个加载中)   定义状态   定义一个上传状态组件,上传前显示 + 号,上传时显示loading   组件代码(

    2023年04月22日
    浏览(29)
  • Vue Element upload组件和Iview upload 组件上传文件

    今天要分享的是使用这俩个UI组件库的upload组件分别实现调用组件本身的上传方法实现和后台交互。接下来就是开车的时间,请坐稳扶好~ 一、element upload组件传送门  1、html文件 注意事项: 使用组件本身的上传事件,必须加auto-upload属性设置为false;                 

    2024年02月11日
    浏览(33)
  • Vue Element ui Upload组件在上传文件时,动态切换 action上传路径

    当我们在使用 Element ui,Upload组件时,官网默认的基础配置如下 现在的需求是,如果页面只有 一个 el-upload组件,需要上传的文件,根据不同的类型,切换不同的action 上传路径。 首先我这里选择,通过调用 before-upload 上传文件之前的钩子函数,函数接收一个参数,就是上传的

    2024年02月11日
    浏览(30)
  • vue Element ui上传组件el-upload封装

    注释: 1. limit 可上传图片数量 2. lableName 当前组件name,用于一个页面多次使用上传组件,对数据进行区分 3. upload 上传图片发生变化触发,返回已上传图片的信息 4. imgUrl 默认图片

    2024年02月11日
    浏览(41)
  • vue element el-upload附件上传、在线预览、下载当前预览文件

    上传 在线预览(iframe): payload: response: 全部代码: 初版–01

    2024年02月14日
    浏览(42)
  • 前端vue elementUI upload上传组件封装&多文件上传&进度条,后端servlet request.getPart()接收文件信息

    选中多个文件上传 通过 axios请求 onUploadProgress 方法监听 on-progress on-success 用这两个钩子函数实现进度条 下面有对应的函数。 本文是每个文件一个请求上传 也可以用一个请求上传多个文件,需要将文件遍历添加到 form 表单中,后端用 request.getParts(); 获取集合,有需要的可以改

    2024年02月11日
    浏览(35)
  • vue+elementui中el-upload组件上传文件时,修改文件名,不用FormData

    今天在开发的时候,后端突然提了一个需求,因为特殊的文件上传不进文件服务器,所以后端问我能不能上传的时候给加个扩展名,本着只要逻辑没问题,都可以通过代码实现的理念,我说:“可以“”,于是乎有了这篇文章。 首先是去element官网逛了逛,发现也没有提供修

    2024年02月06日
    浏览(36)
  • vue前端直接使用element-ui的upload组件上传到阿里云OSS存储

    因为公司的服务器比较拉吧,所以老大决定将数据文件等上传到阿里云服务器,通过ali-oss方式,这样的话读取文件也比较快  (能看到这说明什么安装element-ui都会了,我就不详细介绍了,直接跳过)  在执行下面操作之前,你要确定你的阿里云能看到上边这个页面   这里主

    2024年02月10日
    浏览(45)
  • 【前端学习记录】vue中使用el-upload组件时,上传文件进度条没有实时更新

    问题背景 今天在项目中遇到一个问题,使用el-upload组件时,上传文件进度条没有实时更新,需要手动点击一下才会更新。 原理及可尝试方案 el-upload 组件默认的进度条是通过 Ajax 请求上传文件,并且进度条通过监听 xhr.upload 的 progress 事件来实时更新。但是,有些浏览器在处

    2024年02月01日
    浏览(40)
  • antd upload上传格式.doc、.docx、.pdf、.png、.jpg、.rar和大小100兆限制

    限制上传文件格式.rar、.zip、.pdf、.jpg、.png、.docx antd 中upload对于限制上传文件格式的属性是 accept ,在开发的过程中,accept对于 .doc、.docx、.pdf、.png、.jpg、.rar, 格式的限制是完全没有问题的。但是测试和我说,当选择文件的 自定义格式 改为所有文件时,之前限制好的除了

    2023年04月14日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包