Vue中使用a標簽下載靜態(tài)資源文件(如excel、pdf等)純前端操作方法
第一步,public文件夾下新建static文件夾存放靜態(tài)資源
我存放了一個 .docx文件,當然,你可以存放pdf/word 等文件都可以。

第二步,模擬a標簽下載
//html部分
<el-button type="primary" plain @click="download">本地下載</el-button>
//js部分
// 授權書下載
download() {
// 通過a標簽來實現(xiàn)下載
var a = document.createElement("a") //創(chuàng)建一個<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標簽,會觸發(fā)a標簽的href的讀取,瀏覽器就會自動下載了
a.remove() // 刪除a標簽(一次性的)
}附:前端Vue實現(xiàn)文件下載提示 失敗-未發(fā)現(xiàn)文件的解決思路
前端vue中動態(tài)創(chuàng)建a標簽下載文件
<div name="downloadfile" onclick="downloadClick()">下載模板</div>
//下載模板
downloadClick:function(event){
var link = document.createElement('a');
link.setAttribute("download", "");
link.href = "./static/參會者模板.xls";
link.click();
}
鏡像打包部署后,點擊下載模板,給出“失敗-未發(fā)現(xiàn)文件”的提示。

解決思路:
在鏡像包中查看該文件是否存在于該路徑下
將下載地址打印在瀏覽器控制臺,看完整路徑是否存在問題:
加上console.log("href: " + link.href),復制該地址直接在瀏覽器中訪問(項目有沒有配置上下文,如有,看路徑中是否會帶上了上下文
)

若路徑中存在中文,將中文換成英文試試。若英文路徑可以正常下載,則有可能是中文亂碼的問題,則相應查找解決中文亂碼的方法(我這邊使用的最簡單的方式,將文件名改為了英文,項目中沒有要求一定要用中文名,成功下載了。)

總結
到此這篇關于Vue中使用a標簽下載靜態(tài)資源文件(如excel、pdf等)的文章就介紹到這了,更多相關Vue用a標簽下載靜態(tài)資源文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
從0到1構建vueSSR項目之node以及vue-cli3的配置
這篇文章主要介紹了從0到1構建vueSSR項目之node以及vue-cli3的配置,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03
詳解如何在Vue3+TS的項目中使用NProgress進度條
本文主要介紹了詳解如何在Vue3+TS的項目中使用NProgress進度條,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-06-06
vue-router鉤子函數(shù)實現(xiàn)路由守衛(wèi)
這篇文章主要介紹了vue-router鉤子函數(shù)實現(xiàn)路由守衛(wèi),對vue感興趣的同學,可以參考下2021-04-04
vue前端重構computed及watch組件通信等實用技巧整理
這篇文章主要為大家介紹了vue前端重構computed及watch組件通信等實用技巧整理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05
elementUI如何動態(tài)給el-tree添加子節(jié)點數(shù)據(jù)children詳解
element-ui 目前基本成為前端pc網(wǎng)頁端標準ui框架,下面這篇文章主要給大家介紹了關于elementUI如何動態(tài)給el-tree添加子節(jié)點數(shù)據(jù)children的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-11-11

