vue-cli4前端实现下载本地Excel模板,以及下载静态文件的坑

这篇具有很好参考价值的文章主要介绍了vue-cli4前端实现下载本地Excel模板,以及下载静态文件的坑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

a标签的下载功能:

1:bobl ----二进制流文件

Blob对象标识一个不可变、原始数据的类文件对象。Blob表示的不一定是JavaScript原生格式的数据

2:responseType

responseType它表示服务器响应的数据类型,由于后台返回来的是二进制数据,所以要把它设为‘blob’

通过设置responseType为blob,可以直接拿到二进制文件转化为Blob,两种使用 Blob 实现文件下载的方式

3:window.URL.createObjectURL

在浏览器端,实现直接下载文件,就是使用 a标签 来只想文件的下载地址。window.location.href的本质也是这样,因此在拿到二进制文件对应的Blob对象后,需要为这个Blob对象创建一个指向它的下载地址的URL

vuecli2里面,下载静态文件方法:


1. a标签用 :href="../static/1111.xls" download=“文件名称" 下载;
2. location.href=”…/static/1111.xls`"
3. window.open等等;
需要注意的是:cli2里面需要把要下载的文件放在static下面;

但是现在cli已经出到4了,需要将文件放在public里面才不会被打包,
但是同样的方法我们会发现却找不到文件,效果如图:

文件路径:

vue下载本地静态文件,vue.js,前端,javascript

页面(下载本地文件,不用点击事件,a标签就可以)

vue下载本地静态文件,vue.js,前端,javascript

 结果

vue下载本地静态文件,vue.js,前端,javascript

 修改后

vue下载本地静态文件,vue.js,前端,javascript

 结果1:

 vue下载本地静态文件,vue.js,前端,javascript

结果2:如果打包后下载文件打开为空

vue下载本地静态文件,vue.js,前端,javascript

 原因:基础路径没有添加,所以在打包后,会在发布在测试/预发布/生产的时候会加上相对应的基础路径,而上面那个什么都没有加,所以自测的时候可以但是会在打包发布后会出错

解决方法:加上基础路径

 环境配置文件--  .env.development

vue下载本地静态文件,vue.js,前端,javascript

 配置文件--  vue.config.js

vue下载本地静态文件,vue.js,前端,javascript

 代码:文章来源地址https://www.toymoban.com/news/detail-787074.html

<span 
   class="clickStyle" 
   @click="downloadFile(downLoadUrl,'合同付款建议书模板下载')">
   合同付款建议书模板下载
</span>


data(){
  return{
        downLoadUrl:process.env.BASE_URL+"static/files/付款建议书标准.xlsx",
    }
}



// 下载
    downloadFile (url,fileName) {   
      console.log(url);
      const x = new XMLHttpRequest();
      x.open('GET', url, true);
      x.responseType = 'blob';
      x.onload = function (e) {
        const url = window.URL.createObjectURL(x.response);
        const elink = document.createElement('a');
        elink.href = url;
        elink.target = '_self'; // 当前也 target打开新页面
        elink.setAttribute('download', fileName);
        elink.style.display = 'none';
        document.body.appendChild(elink);
        elink.click();
        document.body.removeChild(elink);
      };
      x.send();       
    },

到了这里,关于vue-cli4前端实现下载本地Excel模板,以及下载静态文件的坑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • vue-cli3项目本地启用https,并用mkcert生成证书

    1、安装命令:npm install -g mkcert 判断是否安装成功,输入命令:mkcert --version,如果能看到版本号,说明安装成功,可以进行下一步 2、生成一个ca证书,mkcert create-ca,生成之后会看到一个ca.crt和ca.key文件 利用刚刚生成的ca证书,再生成cert证书,mkcert create-cert,会在刚刚的路径

    2024年02月04日
    浏览(25)
  • 【前端】Vue中引入excel模板并下载以及XLSX使用

    模板存放位置 src/assets/excelTemplate/模板.xls 安装模块包 新增配置,在vue.config.js中,自己比较一下,最后一段新增的chainWebpack 即可将模板下载到本地 我使用XLSX的场景,在我上传excel的时候,我需要获取它的表头以及里面的数据进行渲染到表格中,在我编辑的时候需要请求Exce

    2024年02月21日
    浏览(35)
  • 「Vue|网页开发|前端开发」01 快速入门:用vue-cli快速写一个Vue的HelloWorld项目

    本文主要介绍如何用vue开发的标准化工具vue-cli快速搭建一个符合实际业务项目结构的hello world网页项目并理解vue的代码文件结构以及页面渲染流程。 Windows 系统的 node.js 安装十分简易,没有环境安装经验的伙伴可以参考文章:Windows系统下安装node.js 我们需要先创建一个用于放

    2024年02月12日
    浏览(37)
  • 06 基于Vue+Vue-cli+webpack搭建渐进式高可维护性前端实战项目

         本文是专栏《 Vue + SpringBoot前后端分离项目实战 》的实战第一篇,将从Vue脚手架安装开始,逐步带你搭建起一套管理系统所需的架构。当然,在默认安装完成之后,会对文件目录进行初步的细化拆分,以便后续 功能迭代和维护 所用。 为兼顾大多数计算机毕设的需求,

    2024年02月16日
    浏览(35)
  • 后端:使用easyExcel实现解析Excel文件读取数据。前端:Excel模板下载、前端上传文件

            本篇是EasyExcel快速入门知识,讲解如何读取Excel文件,对Excel中错误信息如空字符、必填项为空、表格格式校验做到处理 ,并给出了实际项目中示例代码;为什么要使用easyexcel;原因是相比于poi,easyexcel更加轻量级,读取写入API方便,并且在工作中占用内存较小;

    2024年02月05日
    浏览(53)
  • 前端项目,个人笔记(二)【Vue-cli - 引入阿里矢量库图标 + 吸顶交互 + setup语法糖】

    目录 1、项目中引入阿里矢量库图标 2、实现吸顶交互 3、语法糖--script setup 3.1、无需return  3.2、子组件接收父组件的值-props的使用 3.3、注册组件 步骤一 :进入阿里矢量库官网中:iconfont-阿里巴巴矢量图标库  ,挑选自己需要的图标:         我在查看其他博主的博客时

    2024年04月16日
    浏览(42)
  • 【前端Vue】Vue从0基础完整教程第1篇:vue基本概念,vue-cli的使用【附代码文档】

    Vue从0基础到大神学习完整教程完整教程(附代码资料)主要内容讲述:vue基本概念,vue-cli的使用,vue的插值表达式,{{ gaga }},{{ if (obj.age 18 ) { } }},vue指令,综合案例 - 文章标题编辑vue介绍,开发vue的方式,基本使用,如何覆盖webpack配置,目录分析与清理,vue单文件组件的说明,

    2024年03月09日
    浏览(81)
  • web前端自学全套视频,学习慕课网 vue-cli3安装,cube-ui安装,前端面试自我介绍

    https://github.com/cube-ui/cube-template/wiki 2019.2.25 1 tab点击切换导航栏: http://ustbhuangyi.com/music/#/rank vue-cli2.9.6 中使用cube-ui注意事项 https://didi.github.io/cube-ui/#/zh-CN/docs/quick-start 淘宝源 使用 cnpm -v 查看是否已经安装 cnpm。如果没有,使用 npm install cnpm -g --registry=https://registry.npm.taobao.or

    2024年04月26日
    浏览(22)
  • 前端10年进化 Node.js、模块化、CommonJS、AMD、CMD、Webpack、Vue-cli、Electron-vue

    模块化的概念在软件开发领域已经存在很长时间,但在 JavaScript 中的模块化发展相对较晚。以下是对您提出的问题的回答: 提出时间:JavaScript 中的模块化概念相对较早地提出于 CommonJS 规范。CommonJS 是一种 JavaScript 模块化规范,最早在 2009 年由 Ryan Dahl 和其他社区成

    2024年02月11日
    浏览(66)
  • 基于vue-cli创建后台管理系统前端页面——element-ui,axios,跨域配置,布局初步,导航栏

    1.vue-cli创建前端工程,安装element-ui,axios和配置; 2.前端跨域的配置,请求添加Jwt的设置; 3.进行初始化布局,引入新增页面的方式; 4.home页面导航栏的设置,一级目录,二级目录; 安装成功 布局初步 1.vue-cli创建前端工程,安装element-ui,axios和配置; 2.前端跨域的配置,请

    2024年02月09日
    浏览(41)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包