vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > Vue用a标签下载静态资源文件

Vue中使用a标签下载静态资源文件(如excel、pdf等)纯前端操作方法

作者:接口写好了吗?

这篇文章主要介绍了Vue中使用a标签下载静态资源文件(如excel、pdf等)纯前端操作方法的相关资料,需要的朋友可以参考下

第一步,public文件夹下新建static文件夹存放静态资源

我存放了一个 .docx文件,当然,你可以存放pdf/word 等文件都可以。

第二步,模拟a标签下载

//html部分

<el-button type="primary" plain @click="download">本地下载</el-button>

//js部分

// 授权书下载
download() {
   // 通过a标签来实现下载
   var a = document.createElement("a") //创建一个<a></a>标签
    a.href = "/static/签约授权书.docx" //给a标签的href属性值加上地址,注意,这里是绝对路径,不用    加 点.
    a.download = "签约授权书.docx" //设置下载文件文件名,这里加上.docx指定文件类型,pdf文件就指定.pdf即可
    a.style.display = "none" //隐藏a标签
    document.body.append("a") //将a标签追加到document.body中
    a.click() //模拟点击a标签,会触发a标签的href的读取,浏览器就会自动下载了
    a.remove() // 删除a标签(一次性的)
}

附:前端Vue实现文件下载提示 失败-未发现文件的解决思路

前端vue中动态创建a标签下载文件

<div name="downloadfile" onclick="downloadClick()">下载模板</div>
//下载模板
downloadClick:function(event){
    var link = document.createElement('a');
    link.setAttribute("download", "");
    link.href = "./static/参会者模板.xls";
    link.click();
}

镜像打包部署后,点击下载模板,给出“失败-未发现文件”的提示。

解决思路:

在镜像包中查看该文件是否存在于该路径下

将下载地址打印在浏览器控制台,看完整路径是否存在问题:

加上console.log("href: " + link.href),复制该地址直接在浏览器中访问(项目有没有配置上下文,如有,看路径中是否会带上了上下文

若路径中存在中文,将中文换成英文试试。若英文路径可以正常下载,则有可能是中文乱码的问题,则相应查找解决中文乱码的方法(我这边使用的最简单的方式,将文件名改为了英文,项目中没有要求一定要用中文名,成功下载了。)

总结 

到此这篇关于Vue中使用a标签下载静态资源文件(如excel、pdf等)的文章就介绍到这了,更多相关Vue用a标签下载静态资源文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文