小程序 - 文件预览

news/2024/7/20 2:29:18 标签: 小程序, 前端

小程序文件预览

/** 预览 - txt文本 */
  viewTxt(path) {
    let fs = wx.getFileSystemManager();
    let _this = this;
    fs.readFile({
      filePath: path,
      encoding: "utf8",
      position: 0,
      success(res) {
        _this.setData({
          setNoRefresh: true
        });
        wx.navigateTo({
          url: `/pages/view-txt/view-txt?content=${res.data}`
        });
      },
      fail(res) {
        showToast("文件打开失败");
        console.error(res);
      }
    });
  },
  
  /** 预览 - 文件 */
  viewFile(path, type) {
    wx.openDocument({
      filePath: path,
      // 文档类型
      fileType: type,
      success(res) {
        console.log("打开文档成功", res);
      },
      complete(err) {
        console.log("打开文档成功2", err);
      },
      fail() {
        showToast("文件打开失败");
      }
    });
  },
  
  /** 在线预览文档 */
  openDocument(e) {
    let { item } = e.detail;
    let _this = this;
    wx.downloadFile({
      url: item.materialUrl,
      success(res) {
        const path = res.tempFilePath;
        if (item.materialUrl.endsWith(".txt")) {
          _this.viewTxt(path);
        } else {
          _this.viewFile(path, item.type);
        }
      },
      fail(err) {
        if (err.errMsg.includes("downloadFile:fail file data is empty")) {
          wx.navigateTo({
            url: `/pages/view-txt/view-txt?content=`
          });
        } else {
          showToast("文件打开失败");
        }
      }
    });
  },

注意事项

  1. wx.openDocument方法 ios 不支持打开txt文本,需单单独处理
  2. wx.downloadFile ios下载空文件 报错:downloadFile:fail file data is empty, 需根据fail报错信息单独处理

http://www.niftyadmin.cn/n/477695.html

相关文章

python如何将图片显示在网页上

from flask import Flask, render_template_string import base64 import cv2import osapp Flask(__name__)# 读取图像app.route(/)def index():# 读取图像文件并将其转换为Base64编码的字符串img_path 1.pngimg_data open(img_path, rb).read()img_base64 base64.b64encod…

在Unity中,角色控制器简单介绍

介绍 在Unity中,角色控制器是一种特殊的组件,用于控制角色的移动和碰撞检测。它常用于第三人称游戏中,可以让玩家控制角色在游戏场景中自由移动,并与其他物体进行交互。 方法 移动 角色控制器提供了几种方法来控制角色的移动&…

ffmpeg命令参数

主要参数 -i 设定输入流 -f 设定输出格式(format) -ss 开始时间 -t 时间长度视频参数 -vframes 设置要输出的视频帧数 -b 设定视频码率 -b:v 视频码率 -r 设定帧率 -s 设定画面的宽与高 -vn 不处理视频 -aspect aspect 设置横纵比4:3 或16:9 或1.333或…

Spring 2023面试题(1)--事务的隔离级别

一、Spring 五大隔离级别 默认值为 ISOLATION_DEFAULT(使用数据库的设置),其他四个隔离级别和数据库的隔离级别一致: ISOLATION_DEFAULT:用底层数据库的设置隔离级别,数据库设置的是什么我就用什么&#…

HDLbits--bugs mux2

module top_module (input sel,input [7:0] a,input [7:0] b,output [7:0] out );assign outsel?a:b;endmodule或者用always块也可以 一开始只想在表达式当只能够修改,但是error。 编码为 (~sel & a) |(SEL & B&…

【金融量化】如何判断一个基金是不是主动型基金还是被动型基金?

1 含义 主动型基金是指由基金经理或管理团队根据市场行情、个股研究等主观因素进行投资决策的基金,其资产配置和投资组合均由基金经理通过主动选股、择时等方式加以调整。 被动型基金则是指根据某个指数进行投资的基金,其资产配置和投资组合均是模拟指…

C++ / QT 旅游产品管理系统

一、项目介绍 旅游产品管理系统 你是一家旅行社的 IT 主管,现在需要你设计并实现一个旅游产品管理系统。 1 ) 基本功能要求 * 实现基础界面: 参照现有的旅游产品管理系统:查看产品、选择产品、使用说明等内容 * 支持旅游产品…

测评file_get_contents与curl 效率及稳定性

做过好多抓取别家网站内容的产品,习惯了使用方便快捷的file_get_contents函数,但是总是会遇到获取失败的问题,尽管按照手册中的例子设置了超时,可多数时候不会奏效: 1 2 3 4 $config[context] stream_context_create…