• Vue实现下载及文件重命名


    效果如下:

     

     实现步骤:

    html: 

    1. <el-table-column prop="name" label="操作" align="center" header-align="center" width="165">
    2. <template slot-scope="scope">
    3. <el-button type="text" size="small" @click="downloadExport(scope.row)">下载el-button>
    4. template>
    5. el-table-column>

    JS: 

    1. downloadExport(row){
    2. var nowTime = new Date().UTF2()
    3. let url = process.env.BASE_Url+encodeURI(row.fileUri)
    4. const config = {
    5. methods:'get',
    6. url:url,
    7. responseType:'blob'
    8. }
    9. axios(config).then((res)=>{
    10. const link = document.createElement('a')
    11. const url = window.URL.createObjectURL(new Blob([res.data],{ type: 'application/vnd.ms-excel' }))
    12. link.setAttribute("href",url);
    13. link.setAttribute('download',row.origin + '_'+nowTime+'xlsx')
    14. link.click()
    15. })
    16. }

    代码解析:

    因为需求是:不仅要实现下载,而且所下载的文件名需要自定义(文件名+时间)

    我这里做了时间的格式化

    var nowTime = new Date().UTF2()   

    当前下载文件的路径

    let url = process.env.BASE_Url+encodeURI(row.fileUri)    

    调用参数

    const config  

    生成一个a标签

    const link = document.createElement('a')      

    创建一个对象

    window.URL.createObjectURL(new Blob([res.data],{ type: 'application/vnd.ms-excel' }))       

    bold参数是一个file对象或者bold对象

    objectURL是生成的对象URL,通过这个URL,可以获取到所指定文件的完整内容

    如果不指定文件类型的话,默认为txt类型,反正我是遇到了,所以我制定了文件类型

    { type: 'application/vnd.ms-excel' }

    增加一个指定名称和值的新属性,或者把一个现有属性设定为指定的值

            这里是给创建的 a 标签增加属性href和值url

            格式:

                    name:要设置的属性名

                    value:要设置的属性值

    link.setAttribute("href",url);

    再给创建的a标签指定 download 属性,并且拼接文件名及时间

    link.setAttribute('download',row.origin + '_'+nowTime+'xlsx')

    最后让创建的新属性触发点击事件

    link.click()

  • 相关阅读:
    从GitHub到GitLab,半导体巨头Arm更换阵营的5大理由
    Vite+React+Electron开发入门,10分钟搭建本地环境并打包
    Scrum敏捷认证CSM(ScrumMaster)官方课程
    WPS增加正则处理函数,简直如虎添翼
    我在CSDN问答社区的回答
    【Linux基础】第30讲 Linux用户和用户组权限控制命令(二)
    2021CCPC广州-C. Necklace(二分+贪心)
    【Rust日报】2022-06-22 Rust 连续第 7 年成为最受喜爱的语言
    git 第一次推代码
    在Ubuntu Linux Desktop上构建matter开发环境
  • 原文地址:https://blog.csdn.net/qq_17211063/article/details/127977011