Vue下载本地文件路由被vue-router修改问题解决方法(基于ElementUI框架)

使用脚手架创建的项目,下载文件时用a标签的话,转跳的页面路由会被vue-router强行改掉,根本无法下载文件。我也是一点一点的修改才使用了iframe的方法去跳过它。

以下所有的路径都要根据自己的项目来配置,如果你不是用ElementUI,你就直接在方法里面用JS代码去创建<iframe>标签,并且去设置style以及src属性,这几个是最重要的

点击部分代码
在这里插入图片描述
执行的方法

//下载
download(row) {
   let downloadFileUrl = this.$http.defaults.baseURL + "model/download/" + row.modelUrl; //自己的路径
   this.$notify({
     title: `下载的文件是: ${row.name} `,
     type: "success",
     dangerouslyUseHTMLString: true,
     duration: 3000,
     offset: 60,
     //主要是这句,通过ifranme跳过路由标记,这样页面就能自动跳出下载的弹窗了
     message: `<iframe src='${downloadFileUrl}' style="display:none"></iframe>`
   });
 },

后端node代码

//文件下载
router.get('/model/download/:fileName', async (request, response) => {
    response.download('uploads\\'+request.params.fileName) //按照你自己的静态目录来设置
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ldz_miantiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值