V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
waiaan
V2EX  ›  JavaScript

前端如何处理手机上的 uc、qq 浏览器等下载后端传过来的二进制数据?

  •  
  •   waiaan · 2020-03-02 16:23:42 +08:00 · 3209 次点击
    这是一个创建于 1515 天前的主题,其中的信息可能已经有所发展或是发生改变。

    后端传的是二进制数据,前端用

    let data = res.data;
    let url = window.URL.createObjectURL(new Blob([data],{type:someType));
    let link = document.createElement("a");
    link.href = url;
    document.body.appendChild(link);
    link.click();
    

    手机上用 chrome 可以下载,用 qq、uc 等浏览器一直显示下载失败。

    谢谢!

    12 条回复    2020-03-03 11:25:08 +08:00
    LyleRockkk
        1
    LyleRockkk  
       2020-03-02 16:27:09 +08:00
    这个本来就有兼容性问题的,换方案吧
    free9fw
        2
    free9fw  
       2020-03-02 16:31:31 +08:00
    试试我的方法 aHR0cDovL2Jsb2cuY3BlYXNlLmNvbS8yMDE5LzAyLzI2L0Rvd25sb2FkLWZpbGVzLWluLXdlY2hhdC8=
    tommyZZM
        3
    tommyZZM  
       2020-03-02 16:32:55 +08:00
    可以考虑用用 File API
    wunonglin
        4
    wunonglin  
       2020-03-02 16:34:10 +08:00
    本明显他们不支持
    waiaan
        5
    waiaan  
    OP
       2020-03-02 17:06:02 +08:00
    @free9fw 你这个不能处理二进制的吧?
    ysc3839
        6
    ysc3839  
       2020-03-02 19:26:23 +08:00 via Android
    试试用 data uri ?仍然不行的话就是那些浏览器的问题了。
    DOLLOR
        7
    DOLLOR  
       2020-03-02 22:38:32 +08:00
    link.href = 'application/octet-stream;base64,文件的 BASE64 内容';
    link.download = '文件名.扩展名';
    DOLLOR
        8
    DOLLOR  
       2020-03-02 22:39:31 +08:00
    上面错了,改一下。
    link.href = 'data:application/octet-stream;base64,文件的 BASE64 内容';
    link.download = '文件名.扩展名';
    waiaan
        9
    waiaan  
    OP
       2020-03-03 09:52:24 +08:00
    @DOLLOR
    这个在手机 qq 和 uc 浏览器下能用吗?
    free9fw
        10
    free9fw  
       2020-03-03 10:27:30 +08:00
    @waiaan 不用二进制,直接用你请求的 URL
    waiaan
        11
    waiaan  
    OP
       2020-03-03 10:54:04 +08:00
    @free9fw
    感谢解答,不过我请求的 url 还需要 post 传参的。
    waiaan
        12
    waiaan  
    OP
       2020-03-03 11:25:08 +08:00
    @DOLLOR
    测试了一下,都不行,下载失败。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5401 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 08:40 · PVG 16:40 · LAX 01:40 · JFK 04:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.