ns2250225
V2EX  ›  Vue.js

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

  •  
  •   ns2250225 ·
    ns2250225 · Apr 25, 2018 · 12315 views
    This topic created in 2951 days ago, the information mentioned may be changed or developed.
    如题,请大家不吝赐教,💖
    15 replies    2018-04-25 17:36:38 +08:00
    SourceMan
        1
    SourceMan  
       Apr 25, 2018
    大家说这根 vue 有几毛钱关系?
    建议楼主再看下 HTML 基础
    misaka19000
        2
    misaka19000  
       Apr 25, 2018   ❤️ 1
    大家说这根 HTML 有几毛关系?
    建议楼主再看下 HTTP 基础
    trys1
        3
    trys1  
       Apr 25, 2018 via Android
    服务端返回给你的 content-type 对吗
    ns2250225
        4
    ns2250225  
    OP
       Apr 25, 2018
    @SourceMan 我的浏览器是支持 h5 的 download 属性的,可是就是不生效,只能转跳,请问有什么好的方法吗
    ns2250225
        5
    ns2250225  
    OP
       Apr 25, 2018
    @trys1 服务端返回 Content-Type: image/jpeg,只能改服务端吗,请问有没有其它方法啊,感谢,🎈
    fengyj
        6
    fengyj  
       Apr 25, 2018 via Android
    大多数浏览器都不支持的属性还是少用,别用吧。
    ns2250225
        7
    ns2250225  
    OP
       Apr 25, 2018
    @huiyifyj 感谢您的建议,请问有没有其它的方法可以实现啊,🌹
    fengyj
        8
    fengyj  
       Apr 25, 2018 via Android
    href 配合 cdn 就可以的啊。
    madao
        9
    madao  
       Apr 25, 2018
    @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  
       Apr 25, 2018
    @misaka19000
    @SourceMan
    两个各打 50 下 PP。

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

    不过我们 2 个吐槽确实还是对的,这个确实跟 Vue 没关系,也需要楼主复习下 HTML 和 HTTP 的基础来排除问题。
    wxsm
        15
    wxsm  
       Apr 25, 2018
    vue 之所以招黑,应该也是这种问题太多了吧。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1071 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 90ms · UTC 18:03 · PVG 02:03 · LAX 11:03 · JFK 14:03
    ♥ Do have faith in what you're doing.