收藏
回答

使用wx.openDocument打开pdf文件报错

问题模块 框架类型 问题类型 操作系统 工具版本
开发者工具 小程序 Bug Windows V1.02.1903251

使用wx.openDocument方法做了个pdf文件预览功能,使用手机操作时,会从第三次或者第四次开始出现打不开的问题,然后使用真机模式进行调试发现打开文件报错


代码如下:

从服务器获取pdf文件的base64编码,然后将其写成文件,再打开写好的文件

      wx.request({

        url: utils.api.fileData + "/" + that.data.zspdf,

        success(res) {

          if (res.statusCode === 200) {

            let dataurl = res.data.data;

            var manager = wx.getFileSystemManager();

            manager.writeFileSync(`${wx.env.USER_DATA_PATH}/` + that.data.zspdf + '.pdf', dataurl, 'base64');

            wx.openDocument({

              filePath: `${wx.env.USER_DATA_PATH}/` + that.data.zspdf + '.pdf',

              success: function (res) {

                console.log('打开文件成功', res);

              },

              fail: function (res) {

                console.log("fail", res);

              },

              complete: function (res) {

                console.log("complete", res);

              }

            })


          }

        }

      })


最后一次编辑于  04-15
回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员-灵芝
    社区技术运营专员-灵芝
    04-15

    你好,麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    04-15
    赞同
    回复 6
    • O - O
      O - O
      04-16

      https://developers.weixin.qq.com/s/qzoFNFmg7l7C  这个代码片段我使用手机或者真机模式调试时 差不多八次以后会出现openDocument:fail file type not supported -1

      04-16
      回复
    • 社区技术运营专员-灵芝
      社区技术运营专员-灵芝
      04-16回复O - O

      出现问题的具体机型和微信版本号是什么?这边测试没有复现问题

      04-16
      回复
    • O - O
      O - O
      04-16回复社区技术运营专员-灵芝

      手机型号 MI8 微信版本号7.0.4

      04-16
      回复
    • O - O
      O - O
      04-16回复社区技术运营专员-灵芝

      好尴尬,我把微信卸载了又重装了一次 正常了 微信版本依旧是7.0.4

      04-16
      回复
    • 社区技术运营专员-灵芝
      社区技术运营专员-灵芝
      04-16回复O - O

      嗯?现在是已经正常,不会复现这个问题了么?

      04-16
      回复
    查看更多(1)
  • 英忠通信
    英忠通信
    11-10

    请教:用request url下载文件的base64格式,而不用downloadfile直接下载,是出于什么原因?

    11-10
    赞同
    回复 2
    • O - O
      O - O
      11-11
      因为我们所有文件都是把base64编码存储到数据库中,服务器上不会放文件 所以不能直接下载
      11-11
      回复
    • 英忠通信
      英忠通信
      11-11回复O - O
      感谢您耐心解答
      11-11
      回复