Angularjs简单文件下载导致路由器重定向

2023-11-27

HTML:

<a href="mysite.com/uploads/asd4a4d5a.pdf" download="foo.pdf">

上传获得唯一的文件名,而真实姓名保存在数据库中。我想实现一个简单的文件下载。但上面的代码重定向到 / 因为:

$routeProvider.otherwise({
    redirectTo: '/', 
    controller: MainController
});

我尝试过

$scope.download = function(resource){
    window.open(resource);
}

但这只是在新窗口中打开文件。

有什么想法如何启用任何文件类型的真正下载吗?


https://docs.angularjs.org/guide/$location#html-link-rewriting

在如下情况下,链接不会被重写;相反, 浏览器将执行完整页面重新加载到原始链接。

  • 包含目标元素的链接示例:
    <a href="/ext/link?a=b" target="_self">link</a>

  • 转到不同域的绝对链接示例:
    <a href="http://angularjs.org/">link</a>

  • 以“/”开头的链接在定义基时会导致不同的基路径示例:
    <a href="/not-my-base/link">link</a>

因此,在您的情况下,您应该添加一个目标属性,如下所示......

<a target="_self" href="example.com/uploads/asd4a4d5a.pdf" download="foo.pdf">
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angularjs简单文件下载导致路由器重定向 的相关文章

随机推荐