V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ns2250225
V2EX  ›  Vue.js

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

  •  
  •   ns2250225 ·
    ns2250225 · 2018-04-25 16:34:22 +08:00 · 11662 次点击
    这是一个创建于 2186 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,请大家不吝赐教,💖
    15 条回复    2018-04-25 17:36:38 +08:00
    SourceMan
        1
    SourceMan  
       2018-04-25 16:35:41 +08:00
    大家说这根 vue 有几毛钱关系?
    建议楼主再看下 HTML 基础
    misaka19000
        2
    misaka19000  
       2018-04-25 16:36:46 +08:00   ❤️ 1
    大家说这根 HTML 有几毛关系?
    建议楼主再看下 HTTP 基础
    trys1
        3
    trys1  
       2018-04-25 16:36:55 +08:00 via Android
    服务端返回给你的 content-type 对吗
    ns2250225
        4
    ns2250225  
    OP
       2018-04-25 16:38:35 +08:00
    @SourceMan 我的浏览器是支持 h5 的 download 属性的,可是就是不生效,只能转跳,请问有什么好的方法吗
    ns2250225
        5
    ns2250225  
    OP
       2018-04-25 16:41:50 +08:00
    @trys1 服务端返回 Content-Type: image/jpeg,只能改服务端吗,请问有没有其它方法啊,感谢,🎈
    huiyifyj
        6
    huiyifyj  
       2018-04-25 16:42:03 +08:00 via Android
    大多数浏览器都不支持的属性还是少用,别用吧。
    ns2250225
        7
    ns2250225  
    OP
       2018-04-25 16:44:48 +08:00
    @huiyifyj 感谢您的建议,请问有没有其它的方法可以实现啊,🌹
    huiyifyj
        8
    huiyifyj  
       2018-04-25 16:47:34 +08:00 via Android
    href 配合 cdn 就可以的啊。
    madao
        9
    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
        10
    madao  
       2018-04-25 16:54:20 +08:00
    @misaka19000
    @SourceMan
    两个各打 50 下 PP。

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

    不过我们 2 个吐槽确实还是对的,这个确实跟 Vue 没关系,也需要楼主复习下 HTML 和 HTTP 的基础来排除问题。
    wxsm
        15
    wxsm  
       2018-04-25 17:36:38 +08:00
    vue 之所以招黑,应该也是这种问题太多了吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1272 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 17:44 · PVG 01:44 · LAX 10:44 · JFK 13:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.