[请教] 在 vue 中的 a 标签怎样下载文件啊,设置了 download 属性,可是只能转跳

2018-04-25 16:34:22 +08:00
 ns2250225
如题,请大家不吝赐教,💖
11670 次点击
所在节点    Vue.js
15 条回复
SourceMan
2018-04-25 16:35:41 +08:00
大家说这根 vue 有几毛钱关系?
建议楼主再看下 HTML 基础
misaka19000
2018-04-25 16:36:46 +08:00
大家说这根 HTML 有几毛关系?
建议楼主再看下 HTTP 基础
trys1
2018-04-25 16:36:55 +08:00
服务端返回给你的 content-type 对吗
ns2250225
2018-04-25 16:38:35 +08:00
@SourceMan 我的浏览器是支持 h5 的 download 属性的,可是就是不生效,只能转跳,请问有什么好的方法吗
ns2250225
2018-04-25 16:41:50 +08:00
@trys1 服务端返回 Content-Type: image/jpeg,只能改服务端吗,请问有没有其它方法啊,感谢,🎈
huiyifyj
2018-04-25 16:42:03 +08:00
大多数浏览器都不支持的属性还是少用,别用吧。
ns2250225
2018-04-25 16:44:48 +08:00
@huiyifyj 感谢您的建议,请问有没有其它的方法可以实现啊,🌹
huiyifyj
2018-04-25 16:47:34 +08:00
href 配合 cdn 就可以的啊。
madao
2018-04-25 16:50:44 +08:00
@ns2250225 严格来说,这应该是跨域问题。
如果你的文件地址和网页地址不是一个域,那么就会这样。
你可以试试在本地开一个 index.html 同一级放一个 a.jpg, download 这个属性是可行的。
但是放一个外部地址的图片,不行。但是如果你是 Mac 环境,你可以尝试下 open -na Google\ Chrome --args --disable-web-security 这个命令,会打开一个没有安全限制的 chrome,这样你点那个外部地址的图片,就会可以 download。

但是还是有别的实现方案,推荐阅读: http://www.zhangxinxu.com/wordpress/2017/07/js-text-string-download-as-html-json-file/
madao
2018-04-25 16:54:20 +08:00
@misaka19000
@SourceMan
两个各打 50 下 PP。

* Chrome 65 and above only supports same-origin download links.
madao
2018-04-25 16:55:03 +08:00
@ns2250225 遇到问题先尝试拆解你不确定的变量,然后思考 /Google 它。
https://caniuse.com/#feat=download 这里你大概就能得到大致的理解了。
CSM
2018-04-25 16:56:38 +08:00
服务器返回个 Content-Disposition: attachment; filename=xx
ns2250225
2018-04-25 17:00:48 +08:00
@CSM 嗯,我试试,😀
SourceMan
2018-04-25 17:10:08 +08:00
@madao #10 哈哈,感谢,学习了,还真不知道 65 之后同源才可以。

不过我们 2 个吐槽确实还是对的,这个确实跟 Vue 没关系,也需要楼主复习下 HTML 和 HTTP 的基础来排除问题。
wxsm
2018-04-25 17:36:38 +08:00
vue 之所以招黑,应该也是这种问题太多了吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/449790

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX