收藏
回答

企业微信内置浏览器开发下载文件功能,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("下载成功");
})
    
回答关注问题邀请回答
收藏

10 个回答

  • 亿点点
    亿点点
    03-19

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

    03-19
    有用 1
    回复
  • 菜鸟巅疯
    菜鸟巅疯
    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
      回复
  • 🌚
    🌚
    2022-11-08

    插个眼

    2022-11-08
    有用
    回复
  • 👾
    👾
    2022-06-17

    你好 请问解决这个问题了吗

    2022-06-17
    有用
    回复
  • 洌
    2020-10-28

    你好,请问您这个问题解决了吗? 我也遇到了这样的问题。在浏览器中正常,发布到企业微信就出现了问题。出现白屏

    2020-10-28
    有用
    回复 14
    • TrumanGao
      TrumanGao
      2020-10-29
      还没有解决,企业微信内置h5开发坑太多了,官方也不回复。。
      2020-10-29
      回复
    • 你好、我是珍美好
      你好、我是珍美好
      2020-11-12回复TrumanGao
      请问解决了吗
      2020-11-12
      回复
    • TrumanGao
      TrumanGao
      2020-11-23回复你好、我是珍美好
      换了个方案实现,改用 js-sdk wx.preview方法了,具体使用方法可以看我这篇文章,避坑 https://blog.csdn.net/TrumanGao/article/details/109741978
      2020-11-23
      回复
    • 五月忧伤
      五月忧伤
      2021-06-18回复TrumanGao
      wx.previewFile只能读取服务器上的静态文件,读取后台文件流生成file或blob对象,通过createObjectURL生成指向该对象的内存URL也是不能下载的,请问有办法解决吗
      2021-06-18
      回复
    • clinay。
      clinay。
      2021-12-08回复TrumanGao
      微信内置浏览器好像会屏蔽掉下载功能,所以不能用blob的形式或者使用jssdk,我也找不到好的方法了
      2021-12-08
      回复
    查看更多(9)
登录 后发表内容
问题标签