收藏
回答

企业微信内置浏览器开发下载文件功能,blob类型文件下载,无法下载文件

如题,下载功能在pc端测试是完全正常的,内嵌到企业微信里就无效了,进入了then方法,弹出下载成功提示,但是没有其他任何反应,文件也并没有下载到本地,请问如何解决?

$api.getBlob(url).then(res=>{
  // res是返回的blob类型数据
  let a = document.createElement("a");
  a.href = URL.createObjectURL(res);
  a.download = this.currentFileData.pfile_Name; // 下载名称
  a.click();
  $toast.success("下载成功");
})
    
回答关注问题邀请回答
收藏

13 个回答

  • 亿点点
    亿点点
    03-19

    2024了呀,玛德现在这个坑还在。a,标签以及location.href的方式试了都没用,难道只有接入对应的jssdk,调用wx的预览方法才行得通吗

    03-19
    有用 3
    回复 2
    • lotto
      lotto
      04-23
      真的无语,这玩意都好几年了
      04-23
      回复
    • sur
      sur
      10-10
      还是不行,头疼
      10-10
      回复
  • 刘洋
    刘洋
    08-15

    4年了,这个问题 wx还是没解决

    08-15
    有用
    回复 1
    • zzz
      zzz
      10-10
      +1
      10-10
      回复
  • 不见罗马
    不见罗马
    07-10

    插个眼,希望官方能看到


    07-10
    有用
    回复
  • Birdman
    Birdman
    07-08

    救命,还不行吗?用sdk还可给我提示{"errMsg":"wx.config:ok","checkResult":{"previewFile":false}}

    07-08
    有用
    回复
  • 草巾冒小子
    草巾冒小子
    03-21

    用户很纯粹的,他们只想要实现click下载按钮就下载文件,无其他繁琐流程和隐藏目的,这操作真的有这么谩吗

    03-21
    有用
    回复
  • 旺仔哥哥
    旺仔哥哥
    2023-11-14

    不知道是不是正确答案哎 我直接使用 window.location.href ='下载地址完整路径' 可以打开预览图片


    2023-11-14
    有用
    回复
  • Michael
    Michael
    2023-10-16

    问题解决了嘛?我们也不行,同样的代码,PC浏览器,安卓企业微信,安卓浏览器,IOS浏览器都可以,就是IOS企业微信直接就出现unknown,无法下载使用的也是流的方式;

          const blobo = new Blob([res.data], { type: 'application/force-download' })
          const archor = document.createElement('a');
          let url = window.URL.createObjectURL(blobo);
          archor.setAttribute('href', url)
          let filename = decodeURIComponent(res.filename.replace(/\+/g, " "));
          archor.setAttribute('download', filename)
          archor.click();
          // 释放url
          window.URL.revokeObjectURL(url);
    


    直接使用a标签,修改href,调用click又没有任何反应

    html:
                <div class="hidden">
                    <a id="attachment" href="" target="_blank">附件预览</a>
                </div>
    js:
    var aobj: any = document.getElementById("attachment");
    aobj.setAttribute('href', res)
    var href = aobj.getAttribute("href");
    aobj.click();
    


    2023-10-16
    有用
    回复
  • ༺门捷亮夫༻
    ༺门捷亮夫༻
    2023-06-12

    2023-06-12,今天还是不行,太坑了

    2023-06-12
    有用
    回复 2
    • 奕阳
      奕阳
      2023-08-03
      2023-08-03,还是不行:“后台接口返回的Blob文件流,用createObjectURL生成内存地址,不能预览和下载”(可以预览了 但不能下载 )
      2023-08-03
      回复
    • 余小又
      余小又
      2023-11-14回复奕阳
      2023-11-14,还是不行,同上,我还特地去弄了wx.previewFile预览下载,结果安卓机还是不行,会跳到外面报企微内打开
      2023-11-14
      回复
  • 飞鸟
    飞鸟
    2023-03-16

    请问解决了吗?我也遇到了一样的问题


    2023-03-16
    有用
    回复 1
    • 一乌鱼
      一乌鱼
      2023-05-18
      你解决了不
      2023-05-18
      回复
  • LeegreatequaL.
    LeegreatequaL.
    2022-11-21

    后台接口返回的Blob文件流,用createObjectURL生成内存地址,不能预览和下载,请问怎样解决?

    2022-11-21
    有用
    回复 2
    • 一乌鱼
      一乌鱼
      2023-05-18
      解决了不
      2023-05-18
      回复
    • 崔良
      崔良
      2023-08-18回复一乌鱼
      预览我转成base64去预览了,下载直接改成一个提示语了,让用户长按图片下载
      2023-08-18
      回复

正在加载...

登录 后发表内容
问题标签