目录

1.需求确定

2.具体内容

3.总结

1.需求确定

最近在项目中要点击“帮助文档”,下载《系统操作手册》。

也就是获取静态资源文件export.pdf,将pdf文档下载至本地。

拿到这个需求后,找了些方案,如下

方案1:在vue cli中安装一些插件,如jquery,利用jquery下载本地文件;

方案2:直接使用原生ajax下载本地文件;

方案3:利用axios请求;

最后考虑到项目中已经在使用axios,就采用方案3。

2.具体内容

在使用过程中发现问题记录如下:

项目1:vue 2.0 + element ui+es5中

利用a标签,给个点击事件download()

<a id="attname" class="attname" href="javascript:void(0);" @click="download">帮助文档

页面已经引用过axios,使用如下:

import axios from 'axios';

Download方法中为避免无法导出,将待导出文件名称改为英文“export.pdf”,导出后的名称设置为中文名称“系统操作手册.pdf”;

待导出文件放在“static”文件夹下;

download(){

axios.get('static/export.pdf', {

responseType: 'blob', //重要

}).then(response => {

const url = window.URL.createObjectURL(new Blob([response.data]));

const link = document.createElement('a');

let fname = '系统操作手册.pdf';

link.href = url;

link.setAttribute('download', fname);

document.body.appendChild(link);

link.click();

});

}

项目2:vue 3.0 + iview ui+typescript中

利用a标签,给个点击事件download()

<a id="attname" class="attname" href="javascript:void(0);" @click="download">帮助文档

页面已经引用过axios

import axios from 'axios';

Download方法中为避免无法导出,将待导出文件名称改为英文“export.pdf”,导出后的名称设置为中文名称“系统操作手册.pdf”;

在“public”文件夹下建“export”文件夹,放待导出文件;

download(){

axios.get('export/export.pdf', {

responseType: 'blob', //重要

}).then(response => {

const url = window.URL.createObjectURL(new Blob([response.data]));

const link = document.createElement('a');

let fname = '系统操作手册.pdf';

link.href = url;

link.setAttribute('download', fname);

document.body.appendChild(link);

link.click();

});

}

其中,在项目2的使用过程中遇到了问题,将待下载文件放在“static”或“assets”文件夹下,始终获取不到待下载文件,不同的后缀的文件“.json、.ts”等都是404找不到,如下:

经过一天的问题查找,发现vue cli3.0中静态资源文件夹为“public”,在“public”文件夹下建“export”文件夹,放待导出文件“export.pdf”后,返回状态码200,下载正常:

3.总结

vue cli2.0的静态文件是static

vue cli3.0的静态文件是public

童鞋们使用过程中千万不要搞错了,会获取不到本地文件的

注:除本文中pdf文件外,还可下载其他格式为文件,使用方式类似;

记录一下,以备查询使用;

vue 本地pdf或excel等文件下载的更多相关文章

  1. vue+iview 通过a标签实现文件下载

    vue+iview 通过a标签实现文件下载 方法一: 注意: 如果下载的文件放在本地目录下,一定要将模板文件放到 public 目录下,否则由于权限问题找不到文件 路径: 项目更目录-->pub ...

  2. PDF/WORD/EXCEL 图片预览

    一.PDF/WORD/EXCEL 转 XPS 转 第一页内容 转 图片 WORD.EXCEL转XPS (Office2010) public bool WordToXPS(string sourceP ...

  3. vue实现pdf导出,解决生成canvas模糊等问题

    最近公司项目需要,利用vue实现pdf导出,从而保存到本地打印出来,说起来好像也很容易,具体要怎么实现呢? 1 .我们要添加两个模块 第一个.将页面html转换成图片 npm install --sa ...

  4. C#下载http/https的pdf、excel等文件(非在线打开,绕开插件)

    非本服务器文件,如PDF,excel等,下载一般是通过href=‘远程文件的http或者https’的方式下载,但是如果浏览器已经有PDF插件了,则用href不是下载,而是在线打开了,影响体验,所以远 ...

  5. C# 将PDF转为Excel

    通常,PDF格式的文档能支持的编辑功能不如office文档多,针对PDF文档里面有表格数据的,如果想要编辑表格里面的数据,可以将该PDF文档转为Excel格式,然后编辑.本文,将以C#代码为例,介绍如 ...

  6. C#/VB.NET 将PDF转为Excel

    PDF文档可以避免可防⽌他⼈⽆意中触到键盘修改⽂件内容.但是在避免他人⽆意修改的同时也妨碍了正常的修改.如果你想处理或修改PDF文档中的数据,不妨试试用Excel来实现.Excel拥有强大的数据处理功 ...

  7. Vue中实现自定义excel下载

    目录 第一种:后端生成excel 第二种:前端合成excel 总结 参考资料 最近在工作中遇到一个需求,就是需要在前端实现一个错误模板Excel的下载功能. 实现下载有两种方式,一种是后端生成一个ex ...

  8. ABBYY如何把PDF转换Excel

    我们都知道2007以上版本的Office文档,是可以直接将文档转存为PDF格式文档的.那么反过来,PDF文档可以转换成其他格式的文档吗?这是大家都比较好奇的话题.如果可以以其他格式进行保存,就可以极大 ...

  9. Ireport 报表导出 Poi + ireport 导出pdf, word ,excel ,htm

    Ireport 报表导出 Poi + ireport 导出pdf, doc ,excel ,html 格式 下面是报表导出工具类reportExportUtils 需要导出以上格式的报表 只需要调用本 ...

  10. springboot为导出的pdf和excel加水印

    相信很多小伙伴们在做导出pdf或者excel文件时会被要求在文件上加上水印,本篇博客就来讲讲如何为pdf和excel加水印. 导出pdf加水印 其实在导出pdf时加上水印并不难,因为itext提供了添 ...

随机推荐

  1. Sentinel源码—3.ProcessorSlot的执行过程

    大纲 1.NodeSelectorSlot构建资源调用树 2.LogSlot和StatisticSlot采集资源的数据 3.Sentinel监听器模式的规则对象与规则管理 4.AuthoritySlo ...

  2. 重生之我是操作系统(十)----I/O管理

    简介 操作系统的I/O管理(input/output mannagment)是协调,控制计算机与外部设备(如磁盘,键盘,网络接口)等之间数据交换的核心功能.实现可靠高效且统一(隐藏设备差异,如磁盘.串 ...

  3. Nacos简介—3.Nacos的配置简介

    大纲 1.Nacos生产集群Web端口与数据库配置 2.Nacos生产集群的Distro协议核心参数 3.Nacos打通CMDB实现跨机房的就近访问 4.Nacos基于SPI动态扩展机制来获取CMDB ...

  4. Python3爬虫入门(一)

    Python3爬虫入门 ​网络爬虫,也叫网络蜘蛛(Web?Spider).它根据网页地址(URL)爬取网页内容,而网页地址(URL)就是我们在浏览器中输入的网站链接. 在浏览器的地址栏输入URL地址, ...

  5. 为React组件库引入自动化测试:从零到完善的实践之路

    为什么我们需要测试? 我们的 React+TypeScript 业务组件库已经稳定运行了一段时间,主要承载各类UI展示组件,如卡片.通知等.项目初期,迫于紧张的开发周期,我们暂时搁置了自动化测试的引入 ...

  6. RISC-V指令:逻辑指令与移位指令

    本节将继续学习逻辑指令(and.or.xor)和移位指令(sll.srl.sra) 逻辑指令 从CPU芯片电路角度来看,其实CPU更擅长指令逻辑操作,如与.或.异或 RISC-V指令集中包含了三种逻辑 ...

  7. 抽象类&&接口做形参(其实同理)

    抽象类:传入该抽象类的子类对象 eg: package javaBasic; public class TestAbstract { public static void main(String[] ...

  8. git提示:There is no tracking information for the current branch

    问题 使用git pull拉取远程分支代码的时候,提示: > There is no tracking information for the current branch. Please sp ...

  9. C++ 11之std::bind用法

    #include <iostream> #include <functional> #include <stdio.h> int funcA( int a, int ...

  10. 【转载】数论学习笔记(Blog of tyqtyq)

    from a famous oier \(\texttt{tyqtyq}\)请点链接tyqtyq~! - 博客园 (cnblogs.com) 数论分块 \(\sum_{i=1}^{n} \lfloor ...