首页 > 其他分享 >利用a标签实现文件下载功能(ant design vue可用)

利用a标签实现文件下载功能(ant design vue可用)

时间:2022-10-14 11:59:59浏览次数:75  
标签:vue let 标签 fileName ant link blob design document

# 利用a标签实现文件下载功能(ant design vue可用)
## 代码和注释
```
let fileUrl = “” //所下载文件的网络地址
let fileName = “” //下载成功后保存的文件名
//创建一个a标签
const link = document.createElement('a');
//设置是否在当前页面打开,target其他取值及含义:_blank:新窗口打开。_parent:在父窗口中打开链接。_self:默认,当前页面跳转。_top:在当前窗体打开链接,并替换当前的整个窗体(框架页)。
link.target = '_blank' //如果该值为‘_self'该行可忽略
//将a标签隐藏起来
link.style.display = 'none';
// 给a标签设置下载的网络地址
link.href = URL.createObjectURL(blob);
//设置保存下来的文件名
link.download = fileName + '.pdf';
//将a标签添加到文档对象中
document.body.appendChild(link);
//触发相应事件
link.click();
//移除a标签
link.remove();
//进行到这一步对于一些浏览器或者一些格式已经成功啦但是对于图片、文档可能它是预览状态,解决方式 参考下面方法
fetch(fileUrl).then(res => res.blob()).then((blob) => {
link.href = URL.createObjectURL(blob);
link.download = fileName + '.pdf';
document.body.appendChild(link);
link.click();
link.remove();
});
```
## 纯代码
### 第一种
```
let fileUrl = “” //所下载文件的网络地址
let fileName = “” //下载成功后保存的文件名
const link = document.createElement('a');
link.target = '_blank' //如果该值为‘_self'该行可忽略
link.style.display = 'none';
link.href = URL.createObjectURL(blob);
link.download = fileName + '.pdf';
document.body.appendChild(link);
link.click();
link.remove();
```
### 第二种
```
let fileUrl = “” //所下载文件的网络地址
let fileName = “” //下载成功后保存的文件名
const link = document.createElement('a');
link.target = '_blank' //如果该值为‘_self'该行可忽略
link.style.display = 'none';
fetch(fileUrl).then(res => res.blob()).then((blob) => {
link.href = URL.createObjectURL(blob);
link.download = fileName + '.pdf';
document.body.appendChild(link);
link.click();
link.remove();
});
```

标签:vue,let,标签,fileName,ant,link,blob,design,document
From: https://www.cnblogs.com/zzxCode/p/16791145.html

相关文章

  • Vue3+Element-plus 报错记录
    目录Vue3+Element-plus报错记录报错信息错误场景还原问题排查错误代码el-select多选Vue3+Element-plus报错记录报错信息TypeError:Cannotreadpropertiesofnull......
  • VUE截图
    一、安装html2canvas、vue-croppernpmihtml2canvas--save//用于将指定区域转为图片npmivue-cropper-S//将图片进行裁剪二、在main.js注册vue-cropper组件im......
  • vue封装自己的axios
    在项目中封装自己的axios在src目录下建立一个unit文件夹//unit=>http.jsimportaxiosfrom"axios";consthttp=axios.create({baseURL:"xxxx",......
  • vue中基于webpack打包的一些配置说明
    以下配置只限于打包时assetsPublicPath路径变化时的配置,如果是正常的打包,不用配置任何路径,不必参考!1.静态资源配置:index:path.resolve(__dirname,'../dist/index.html'......
  • vue2实现树
    效果:接口返回数据: vue2前端代码:getTree(){this.listLoading=truegetAcademyTree().then(response=>{console.log(response.data)......
  • Vue面试题32:你用过自定义指令吗?(总结自B站up主‘前端杨村长’视频,仅供自用学习)
    分析:这是一道API题,我们可能写的自定义指令少,但是我们用的多呀,多举几个例子就行;使用://Vue2directives:{focus:{inserted(el,binding,vnode){el.f......
  • vue3+vite引入插件unplugin-auto-import
    自动引入compositionapi,不需要再手动引入。github地址:https://github.com/antfu/unplugin-auto-import下载npmiunplugin-auto-import-D修改vite.config.ts文件i......
  • 实现简单的vue-router
    1.使用vue-cli创建一个配置Router,且是history模式的项目,可以看到使用vue-router的相关代码://route-demo/src/router/index.jsimportVuefrom'vue'importVueRouterf......
  • centos7 中manta软件的安装
     001、系统(base)[root@pc1~]#cat/etc/redhat-releaseCentOSLinuxrelease7.6.1810(Core) 002、下载安装包wgethttps://github.com/Illumina/manta/arc......
  • 15、vue+elementUI
    设置动态路由导航栏点击高亮点击查看代码<template><el-containerstyle="height:500px;border:1pxsolid#eee"><el-asidewidth="200px"style="bac......