收藏
回答

使用writeFile方法将文件流写入到本地用openDocument方法打开后,pdf是空白的?

回答关注问题邀请回答
收藏

7 个回答

  • D.
    D.
    07-02

    2024年了,我也碰到这个问题了。咋解决的啊……

    07-02
    有用
    回复 2
    • 兰馨
      兰馨
      07-11
      解决了吗
      07-11
      回复
    • YYXX👻
      YYXX👻
      12-02
      解决了嘛
      12-02
      回复
  • 我终于可以有个昵称
    我终于可以有个昵称
    2023-04-25

    请问解决没有呢?同样的问题,空白,页码正确

    2023-04-25
    有用
    回复 1
    • wonder
      wonder
      2023-08-09
      看request有没有配置responseType: 'arraybuffer'//用于读取转换
      2023-08-09
      回复
  • yang
    yang
    2022-03-08

    后端返回的二进制数据,返回前用 base64 编码一下,小程序那里直接用 base64 去解析就可以

    2022-03-08
    有用
    回复 1
    • 左耳击水兽
      左耳击水兽
      2022-10-11
      我想知道怎么转,用了方法都没用,请教一下
      2022-10-11
      回复
  • Tsui
    Tsui
    2021-06-17

    ...

    2021-06-17
    有用
    回复
  • 家乡
    家乡
    2021-05-10

    现在这个版本微信浏览器打开pdf链接 统一都有这个问题的。

    2021-05-10
    有用
    回复
  • Z
    Z
    2021-04-19

    搞个代码片段

    2021-04-19
    有用
    回复 9
    • T.T
      T.T
      2021-04-19
      2021-04-19
      回复
    • Z
      Z
      2021-04-19回复T.T
      。。。 看一下这个  https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html (写一个能够出现的代码片段贴在你的帖子上 这样别人也能看到帮你解决)
      2021-04-19
      回复
    • T.T
      T.T
      2021-04-19
      这样的行不行,直接给微信开发者工具的片段我不知道怎么弄,代码里面的app.globalData.Request.postRequest是接口 的请求,那里也配置了header.responseType = arraybuffer
      2021-04-19
      回复
    • Z
      Z
      2021-04-19回复T.T
      打开空白有报错吗
      2021-04-19
      回复
    • T.T
      T.T
      2021-04-19回复Z
      我们这里有网络限制,贴出来代码片段,接口啥的应该也请求不了。。。。。
      2021-04-19
      回复
    查看更多(4)
  • 安逸
    安逸
    2021-04-19

    下载 然后 打开

    wx.downloadFile({
      // 示例 url,并非真实存在
      url: 'http://example.com/somefile.pdf',
      success: function (res) {
        const filePath = res.tempFilePath
        wx.openDocument({
          filePath: filePath,
          success: function (res) {
            console.log('打开文档成功')
          }
        })
      }
    })
    
    2021-04-19
    有用
    回复 3
    • T.T
      T.T
      2021-04-19
      现在是在这个pdf里面加上水印,所以得识别流文件,这种方式打的开,我试过了,但是用这种写入本地的,打开就不行
      2021-04-19
      回复
    • T.T
      T.T
      2021-04-19
      刚刚代码没有贴全,这些是全的 
      let newPath = wx.env.USER_DATA_PATH+ '/' + e.currentTarget.dataset.item.annexName
            let that = this
            app.globalData.Request.postRequest("doc-manage/docInfo/download?docCode=" + e.currentTarget.dataset.item.docCode + '&annexCode=' + e.currentTarget.dataset.item.annexCode, prams,
              function (res) {
                const fs = wx.getFileSystemManager(); //获取全局唯一的文件管理器
                fs.writeFile({
                  filePath: newPath, // wx.env.USER_DATA_PATH 指定临时文件存入的路径,后面字符串自定义
                  data: res,
                  // encoding: "application/json;charset=UTF-8", //二进制流文件必须是 binary
                  // encoding: "application/json", //二进制流文件必须是 binary
                  encoding: "binary", //二进制流文件必须是 binary
                  fail(err) {
                    console.log("调用失败",err)
                  },
                  success (res){
                    console.log("获取的地址",newPath)
                    wx.openDocument({ // 打开文档
                      filePath:newPath, //拿上面存入的文件路径
                      fileType:'pdf',
                      fail(ree) {
                        console.log("这个失败是什么",ree)
                      },
                      success: function (res) {
                        setTimeout(()=>{wx.hideLoading()},500)
                      }
                    })
                  },
                })
              },
              function (err) {
                console.log("err", err)
              })
      2021-04-19
      回复
    • 柠檬茶
      柠檬茶
      2021-07-26
      请求回来的流是不是对的?
      2021-07-26
      回复
登录 后发表内容