uniapp文件预览以及修改预览标题

常用预览

uniapp里面我们使用downloadFileopenDocument这两个api可以很简单实现对文档类型的文件预览。

js 复制代码
const previewFile = (item: any) => {
  uni.downloadFile({
    url: 'https://文件地址.pdf',
    success: (res: any) => {
      uni.openDocument(
        filePath: res.tempFilePath,
        fileType: 'pdf',
        fail: (err) => {
          console.log(err)
          uni.showToast({
            title: '文件预览失败!',
            icon: 'error',
          })
        },
      })
    },
    fail: (err) => {
      console.log(err)
      uni.showToast({
        title: '文件预览失败!',
        icon: 'error',
      })
    },
  })
}

我们来看看效果:

看起来是没什么问题,只是我们会发现预览的时候文件标题竟然是一串奇怪的字符。其实这是该文件的临时文件名。因为使用downloadFile这个api会将文件临时存到本地,并且会返回该文件的临时地址,预览时候显示的标题就是文件的临时名称。很多时候我们需要自己定义文件标题,而不是临时文件名。

修改预览标题

  1. 我们可以直接将文件进行长期保存并直接重命名文件名,这种方式我们此处不过多叙述了。在我看来为了预览文件而保存一个文件是不合理的。

  2. 我们还可以直接使用downloadFilefilePath参数来定义文件名。

    js 复制代码
    const previewFile = (item: any) => {
      uni.downloadFile({
        url: item.url,
        // uni.env.USER_DATA_PATH表示的是临时路径
        filePath: `${uni.env.USER_DATA_PATH}/${我是自定义标题}.pdf`,
        success: (res: any) => {
          uni.openDocument({
            filePath: res.filePath,
            fileType: 'pdf',
            fail: (err) => {
              console.log(err)
              uni.showToast({
                title: '文件预览失败!',
                icon: 'error',
              })
            },
          })
        },
        fail: (err) => {
          console.log(err)
          uni.showToast({
            title: '文件预览失败!',
            icon: 'error',
          })
        },
      })
    }
相关推荐
秋田君1 分钟前
Qt_串口编程
开发语言·qt
巴勒个啦2 分钟前
如何设计一个高可复用的前端组件库:从API设计到文档自动化
javascript
worilb6 分钟前
Java/JVM 常见诊断文件对比
java·开发语言
ttwuai9 分钟前
Go 后台初始化 MySQL 脚本失败怎么办?先查 DDL 还是生成配置
开发语言·mysql·golang
2601_9628857212 分钟前
如何用 Python 做 A 股全市场扫描选股?(多条件筛选实战)
开发语言·python
梦曦i12 分钟前
unix-router v0.1.0 首发:uni-app x 的 vue-router 风格路由库
前端·uni-app
mONESY14 分钟前
一句话是怎么被大模型记住的?——拆解 LangChain.js 消息从诞生到落盘的完整旅程
javascript
奈斯先生Vector23 分钟前
AIGC 视频生成换个拍法:用 Kling Video 把一张人物图变成可剪辑的短故事
开发语言·人工智能·windows·python·aigc·音视频
mONESY24 分钟前
给大模型装上记忆:Agent 的 Memory 模块,从 InMemory 到文件到 Milvus 向量数据库
javascript
一木 之林25 分钟前
五、C++ 新特性、关键字与编译原理(进阶)(一)
c语言·开发语言·c++