收藏
回答

wx.openDocument打开文件后,有办法显示自定义文件名吗?

使用 wx.downloadFile + wx.openDocument 方法后可以打开pdf文件,但安卓显示乱码名,苹果显示文件预览很不好看,请问有什么办法可以显示自定义名吗

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

3 个回答

  • Jianbo
    Jianbo
    2023-03-09

    可以尝试下载后改名,再打开:https://developers.weixin.qq.com/miniprogram/dev/api/file/FileSystemManager.rename.html

    2023-03-09
    有用 1
    回复 3
  • 蒋程羽
    蒋程羽
    2023-08-16

    wx.downloadFile({

            url: res.currentTarget.dataset.current,

            filePath:wx.env.USER_DATA_PATH+'/要改的名字.后缀',

            success: function (res) {

               const filePath = res.filePath

               wx.openDocument({

                filePath: filePath,

                showMenu:true,

                success: function (res) {

                  console.log('打开文档成功')

                }

              })

            }

          })


    2023-08-16
    有用 2
    回复
  • 俪粒吖~
    俪粒吖~
    2023-03-09

    最后的解决方案是(安卓可用,苹果不显示文件名)

    let fs = wx.getFileSystemManager()
    				wx.showLoading({
    					title: '加载中',
    				})
    				wx.downloadFile({
    					url: 'https://.../fitness-tips.pdf',
    					filePath: wx.env.USER_DATA_PATH + `/tem.pdf`,
    					success: function(res) {
    						if (res.statusCode === 200) {
    							let filePath = res.tempFilePath;
    							fs.rename({
    								oldPath: wx.env.USER_DATA_PATH + `/tem.pdf`,
    								newPath: wx.env.USER_DATA_PATH + `/fitness-tips.pdf`,
    								success: function(res) {
    									//存诸文件名为我们清除缓存(本地用户文件最多10M,因此需要解决,避免占用存诸)
    									let delectFile = wx.getStorageSync('filePath', delectFile) ? wx.getStorageSync('filePath', delectFile) :
    										[];
    									delectFile = [...delectFile, wx.env.USER_DATA_PATH + `/fitness-tips.pdf`]
    									wx.setStorageSync('filePath', delectFile)
    									//打开文档
    									wx.openDocument({
    										filePath: wx.env.USER_DATA_PATH + `/fitness-tips.pdf`,
    										success: function(res) {
    											wx.hideLoading();
    											console.log('打开文档成功')
    										},
    										fail: function(res) {
    											wx.showToast({
    												title: 'fail',
    												icon: 'none'
    											})
    										}
    									})
    
    
    								},
    								fail: function(res) {
    									wx.showToast({
    										title: '文件重命名失败',
    										icon: 'none'
    									})
    								}
    							})
    						}
    					},
    					fail: function(res) {
    						console.log('fail')
    						console.log(res)
    					},
    				})
    


    2023-03-09
    有用 2
    回复 2
    • Jianbo
      Jianbo
      2023-03-09
      方法不错,就是这个思路
      2023-03-09
      回复
    • 如梦
      如梦
      2023-09-20
      苹果不显示文件名  请问有解决吗
      2023-09-20
      回复
登录 后发表内容