URL文件地址下载方法
一、正常情况下,我们都如此下载文件并修改文件名,在a标签上面添加download属性

    //文件下载downFile() {if ('download' in document.createElement('a')) {// 非IE下载const elink = document.createElement('a')elink.href = imgView + 'group1/M00/00/88/FGQfoGIOD3mAW4ezAABGAM4MtrA503.xls' //file.urlelink.download = 'xyqzmb.xls' //file.nameelink.style.display = 'none'//link.target="_blank";elink.click()}

由于a.download跨域会失效,上面代码只可同域实现

二、通过blob实现跨域下载并修改文件名(同样适用于URL地址)

方法

    //通过文件下载url拿到对应的blob对象getBlob(url) {return new Promise(resolve => {const xhr = new XMLHttpRequest()xhr.open('GET', url, true)xhr.responseType = 'blob'xhr.onload = () => {if (xhr.status === 200) {resolve(xhr.response)}}xhr.send()})},
    //下载文件   js模拟点击a标签进行下载saveAs(blob, filename) {var link = document.createElement('a')link.href = window.URL.createObjectURL(blob)link.download = filenamelink.click()},

事件调用

 <a-button type="primary" icon="download" @click="downFile">下载</a-button>
    //文件下载downFile() {let fileUrl = imgView + 'group1/M00/00/88/FGQfoGIPDfuAErRaAABGAH4FyJ4422.xls'  //服务器文件地址this.getBlob(fileUrl).then(blob => {this.saveAs(blob, '信用权证使用导入模板件名.xlsx')})},


以上是直接拿文件url地址下载。

请求接口下载文件方法: 以下方法仅供参考,项目不同,调用方法不同

vue组件

import { exportxlsx } from '@/api/api'
//导出exportData() {let req = {createStartDate: this.startDate,createEndDate: this.endDate,status: this.status,}exportxlsx('/sys/mjBaseCount/exportMjGuaCountData', req).then(res => {console.log(res);this.loading = falseconst content = resconst blob = new Blob([content])const fileName = '担保方式统计.xlsx'if ('download' in document.createElement('a')) {// 非IE下载const elink = document.createElement('a')elink.download = fileNameelink.style.display = 'none'elink.href = URL.createObjectURL(blob)document.body.appendChild(elink)elink.click()URL.revokeObjectURL(elink.href) // 释放URL 对象document.body.removeChild(elink)} else {// IE10+下载navigator.msSaveBlob(blob, fileName)}})}

api.js文件

import {  exportFunc } from '@/api/manage'
//导出
const exportxlsx = (url, params) => {params.brNo = "000000"let req = {"bizContent": JSON.stringify(params),"msgTime": "2019-10-24 16:58:54","msgDate": "2019-9-4","timeStamp": 1571907534171,"nonceStr": "WZuQFVCnNUueCGg94m5tvqB97kcaS4H2","version": "1","userId": params.userId ? params.userId : sessionStorage.getItem('USER_ID'),"userName": sessionStorage.getItem('USER_NAME'),"transCode": "","signType": "","brNo": sessionStorage.getItem('BR_NO'),"appId": "client03","sourceId": "sys","sign": "8F38F92EFEB7306F4AE472E3CE637C54"}if (params.curBrNo !== '' &&params.curBrNo !== null && typeof params.curBrNo !== "undefined") {req.curBrNo = params.curBrNo}if (params.pageIndex !== '' &&params.pageIndex !== null && typeof params.pageIndex !== "undefined") {req.pageIndex = params.pageIndex}if (params.pageSize !== '' &&params.pageSize !== null && typeof params.pageSize !== "undefined") {req.pageSize = params.pageSize}let fullURL = url;if (fullURL.indexOf('http') < 0 && fullURL.indexOf('https') < 0) {fullURL = window._CONFIG['domianURL'] + fullURL;  }return exportFunc(fullURL,req,'post')
}export{exportxlsx }

manage.js文件

import { axios } from '@/utils/request'   //导入axios请求方法  request封装axios文件
export function exportFunc(url,parameter) {return axios({url: url,method:'post' ,data: parameter,responseType: 'blob'})
}

Vue项目:js模拟点击a标签下载文件并重命名,URL文件地址下载方法、请求接口下载文件方法总结。相关推荐

  1. 使用js模拟点击a链接 无效的解决方案

    <a id="abc" href="http://www.baidu.com" target="_self"></a> ...

  2. Vue项目判断鼠标点击事件的左键、中键(滚轮)或右键

    Vue项目判断鼠标点击事件的左键.中键(滚轮)或右键 去掉特定区域的右键点击事件 在需要去掉右键点击事件的区域最外层div标签中添加@contextmenu.prevent属性 <templat ...

  3. mock模拟接口测试 vue_Easy Mock以及Vue+Mock.js模拟数据

    Easy Mock以及Vue+Mock.js模拟数据 一.Mock.js简介 Mock.js是一个可以模拟后端数据,也可以模拟增删改查操作的js库 基础语法规范 数据模板中的每个属性由 3 部分构成: ...

  4. vue项目部署到服务器后浏览器标签上的小图标消失不见

    背景: 最近在开发项目过程中发现一个问题,项目部署到服务器后在浏览器打开,会发现浏览器标签上的小图标消失不见了.百度查找问题,网上给出了许多解决的方案,例如清除浏览器缓存.把图标的相对路径改成绝对路径 ...

  5. vue 项目中,动态修改浏览器标签页的图标

    vue 项目中,动态修改浏览器标签页的图标 需求: 项目中有一个入口可以修改平台的名称和图标,图标同步展示为浏览器页签的图标 实现: 1.找到项目中的app.vue 文件,动态创建link标签,调用后 ...

  6. vue项目js文件引入第三方库组件

    vue项目js文件引入第三方库组件 //首先按需引入 第三方库 import { MessageBox } from 'element-ui' 使用: MessageBox.alert(`<di ...

  7. 对vue项目js文件打包时进行混淆加密

    对vue项目js文件打包时进行混淆加密 环境 vue 3 vue cli 4 webpack 4.0.0 https://www.cnblogs.com/dragonir/p/14445767.htm ...

  8. Vue+Mock.js模拟登录和表格的增删改查

    有三类人不适合此篇文章: "喜欢站在道德制高点的圣母婊" -- 适合去教堂 "无理取闹的键盘侠" -- 国际新闻版块欢迎你去 "有一定基础但又喜欢逼逼 ...

  9. vue项目 - Mockjs 模拟后台接口数据

    Mock 可以进行生成随机数据,模拟后端接口数据,从而实现开发时,前后端分离,提高效率. 1.安装 npm i mockjs -S or yarn add mockjs 2.引入 在src文件目录下, ...

最新文章

  1. 团队项目第一阶段冲刺站立会议1(4月18日)
  2. sudo规则支持正则
  3. Ehab and another construction problem(水题)
  4. django-restframework使用
  5. vue-cli3全面配置详解
  6. java届的黄埔军校_法学界的“黄埔军校”:拒绝与985合并,是其最大遗憾
  7. Mac下安装virtualenvwrapper提示ERROR: No matching distribution found for pbr
  8. Oracle EBS之把自定义concurrent加入Pick Release Document Set(All Pick Release Documents)的几个注意点...
  9. LINUX下载编译ass
  10. linux tomcat6安装及配置
  11. Fedora系统配置中文输入法
  12. 反垃圾邮件 linux,Linux中Postfix反病毒和垃圾邮件工具(十)
  13. 微信公众号的三大分类及功能
  14. 今天给大家分享用scratch的画笔绘制彩色花瓣!
  15. #ps –ef_ps命令 – 显示进程状态
  16. 八年级地理上册复习提纲(星球版)
  17. mybatis代码自动生成工具之maven插件mybatis-generator-maven-plugin(mybatis逆向工程)
  18. [USACO12FEB]牛券Cow Coupons
  19. MATLAB:巴特沃斯低通滤波器过滤信号
  20. 配置安装Apache主服务发生错误:(OS 5)拒绝访问。 : AH00369: Failed to open the Windows service manager, perh······

热门文章

  1. Android照片墙应用实现(AsyncTask应用)
  2. #LAMMPS安装 (嵌入NEP势函数接口)
  3. MAVLink—最强大的微型飞行器通信协议
  4. QT+OpenGL导入STL文件(二进制/ascll码格式),鼠标交互实现缩放旋转
  5. cocos2dx项目,安卓手机音效播放中断
  6. 本地剪切板 java,java:复制图片到系统剪切板 然后怎么以图片文件的形式粘贴至本机...
  7. linux如何自建cdn,有哪些用处?
  8. et200s模块接线图讲解_西门子ET200S 1 STEP 步进模块使用入门.doc
  9. 【无标题】线程学习(18)-多把锁下的线程问题,死锁,活锁,饥饿
  10. 基于FPGA的高精度数字信号发生器