收藏
回答

企业微信JS-SDK wx.previewFile方法能否下载内存文件?

wx.previewFile({
    url: '', // 需要预览文件的地址(必填,可以使用相对路径)
    name: '', // 需要预览文件的文件名,必须有带文件格式的后缀,例如.doc(不填的话取url的最后部分,最后部分是个包含格式后缀的文件名)
    size: 1048576 // 需要预览文件的字节大小(必填,而且大小必须正确,否则会打开失败)
});

参数url设置为服务器中静态文件地址(http开头),能下载和打开。但是从后台读取文件流,生成的内存URL(blob开头)会一直停在下载页面,始终保持0kb

前端代码片段如下

preview (file) {
	let url = null;
  	if (window.createObjectURL != undefined) { // basic
          url = window.createObjectURL(file);
      } else if (window.webkitURL != undefined) { // webkit or chrome
          url = window.webkitURL.createObjectURL(file);
      } else if (window.URL != undefined) { // mozilla(firefox)
          url = window.URL.createObjectURL(file);
      }
  
  
  	wx.invoke(
  		'previewFile',
  	 	{
          	url: url,
          	name: file.name,
          	size: file.size
      	}
      )
  }
最后一次编辑于  2021-06-19
回答关注问题邀请回答
收藏

1 个回答

  • 企业微信运营专员-千夜
    企业微信运营专员-千夜
    2021-06-22

    你好,需要确保的是url是可以在外网访问到才行的

    2021-06-22
    有用
    回复 3
    • 行走之间
      行走之间
      2021-12-06
      可以使用相对路径吗 打开本地文件
      2021-12-06
      回复
    • 企业微信运营专员-千夜
      企业微信运营专员-千夜
      2021-12-07回复行走之间
      这里是需要网络路径
      2021-12-07
      1
      回复
    • ㅤㅤㅤㅤ
      ㅤㅤㅤㅤ
      2022-11-01
      你好  我遇到的问题是 : 文件链接是https 开头的   在ios手机可以正常下载 但是在安卓手机不可以   但是如果换成http 开头的文件链接  就可以在安卓手机上正常下载  请问是什么原因导致的啊
      2022-11-01
      回复
登录 后发表内容