开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
基础 api
基础
应用级事件
界面
跳转
多媒体
缓存
文件
filesystemmanager
文件读写
文件保存
缓存文件管理
目录操作
文件重命名
文件删除
文件存在判断
文件信息
文件解压
stats
旧版接口(停止更新)
位置
网络
设备
worker
数据安全
分享
收藏
自定义通用菜单
更新管理
web-view组件控制
升级支付宝最新版本
隐私信息授权
小程序广告
开放能力 api
开发 > api > 基础 api > 文件 > filesystemmanager > 文件读写 > filesystemmanager.readfile
收藏
我的文档
设置

filesystemmanager.readfile(object object)

基础库  或更高版本; 若版本较低,建议采取 兼容处理

支小宝客户端 支持

安诊儿客户端 支持

主体: 企业支付宝小程序个人支付宝小程序

相关文档: 本地文件代码包文件

读取文件内容。

object object

查看示例

属性 类型 默认值 必填 兼容性 描述
filepath string - -

文件路径,支持本地文件和代码包文件。

encoding string - -

指定读取文件数据时使用的编码方式。如果不传 encoding,则以 arraybuffer 读取文件的二进制内容。

枚举值 描述 兼容性
ascii

基于拉丁字母的单字节编码方式,以 0-127 编码为 ascii 字符集。
举例:二进制(01100001),十进制(97),编码字符为 a 。

-
latin1

向下兼容 ascii(0x00-0x7f),从 0x00-0xff 的单字节编码方式。
举例:二进制(10000000),十六进制为 0x80,编码字符为 latin1 第 129 个字符。

-
binary

编码方式和 utf8 相同。

-
utf8 / utf-8

按照 utf8 的一个或多个字节的编码方式(0 ~ 127为单字节,和 ascii 一致),将二进制数据转换为 unicode 编码的编码方式。
举例:二进制 11100110 10110001 10001001,转换 unicode 后为 110110001001001 对应 16 进制为 0x6c49,\u6c49 对应字符为 “汉”。

-
ucs2 / ucs-2

以小端序读取,将二进制的高位字节放后面,低位字节放前面,以两个字节转为 unicode 的编码方式。举例:二进制 0110000001001111,16 进制 0x604f,编码转换后为 0100111101100000,16 进制为 0x4f60,你 的字符为“你”。

-
utf16le / utf-16le

可看成是 ucs-2 的父集。在没有辅助平面字符前,utf-16 与 ucs-2 所指的是同一的意思。

-
base64

基于 64 个可打印字符来表示二进制数据的编码方式。
举例:二进制(01101001 10110111 00011101)base64 编码转换后为(00011010 00011011 00011100 00011101),对应字符为 abcd 。
读取图片时,推荐用此枚举值

-
hex

将任意一个字节以两个 16 进制数字编码的方式。
举例:二进制(00001111),16 进制为 0x0f,编码字符为 0f。

-
position number -
支付宝: 10.5.16

指定开始读取文件的位置,单位:byte; 读取范围为 [position, position length);有效值范围:[0, maxlength - 1] 。若不指定,则从文件开始位置读。
注:maxlength 为文件总字节长度。

length number -
支付宝: 10.5.16

指定读取文件的长度,单位:byte,有效值范围为 [1, maxlength];若不指定,则读到文件末尾。

success function - -

调用成功的回调函数。

fail function - -

调用失败的回调函数。

complete function - -

调用结束的回调函数(调用成功、失败都会执行)。

success 回调函数

参数

object res

查看示例

属性 类型 描述
data string/arraybuffer

读取的文件内容。

datatype string

输出的数据类型。以 arraybuffer 读取时为 "arraybuffer",其它为 "string"。

fail 回调函数

参数

object err

查看示例

属性 类型 描述
error number

错误码

errormessage string

错误信息

fail 回调的参数为 object,error 属性为错误码,errormessage 属性为错误消息。

错误码 错误消息 凯发app官方网站的解决方案
2 未知的编码格式,请正确传参

请检查入参 encoding 的值是否正确。

无效参数 {filepath}

请检查入参 filepath 。为代码包文件时,不支持相对文件路径。

3 未知错误

读文件出现异常 / 客户端内存不足时读大文件 会报此错误码,实际开发中,请注意做兼容处理

10022 文件/目录不存在。

请检查入参 filepath 对应的文件是否存在。

filesystemmanager.readfile(object object)
读取代码包文件
success 参数
fail 参数
读取 json 文件示例
读取音频文件示例
// 获取文件管理器
let fs = my.getfilesystemmanager();
fs.readfile({
  filepath:  `${my.env.user_data_path}/test.txt`, // 用户本地文件地址,
  encoding: 'utf8',
  success: res => {
    console.log(res);
  },
  fail(err) {
    console.log(err);
  }
});
读取代码包文件
mini.project.json
// 读取代码包文件时,需要在 mini.project.json 中配置文件路径。
let fs = my.getfilesystemmanager();
fs.readfile({
  filepath: `source/test.txt`, // 代码包文件地址
  encoding: 'utf8',
  success: res => {
    console.log(res);
  },
  fail: err => {
    console.log(err);
  }
});
// mini.project.json 配置示例,下例中 source 为根目录(app.json 所在目录)下的文件夹,* 代表任意文件名。
{
    "assetsinclude": ["source/*.txt", "source/*.json", "source/*.mp3"]
}
{
  "data": "文件内容",
  "datatype": "string",
  "success": true
}
{
    "error": 2,
    "errormessage": "未知的编码格式,请正确传参"
}
let fs = my.getfilesystemmanager();
fs.readfile({
  filepath: 'source/test.json', // 代码包里的 json 文件
  encoding: 'utf8',
  complete: res => {
    console.log(json.parse(res.data));
  },
});
let fs = my.getfilesystemmanager();
fs.readfile({
  filepath: 'source/test.mp3', // 代码包里的音频文件
  encoding: 'base64',
  complete: res => {
    console.log(res.data); // 获得 base64 编码的音频内容。
  },
});
  • tip
    读取小程序 代码包文件 前需在 mini.project.json 中配置可读取的小程序文件。
  • tip
    如果需要的是二进制流,请不要传 encoding 参数
  • bug
    ios: 10.5.20 之前的版本,当 encoding 为 hex 时,返回 data 有前缀 'length={xxx},bytes='。

q:如何读取 json 文件?

a:

可以取 encoding 值为 utf8 读取文件,查看 读取 json 文件示例

q:音频文件、图片文件 怎么读取?

a:

通常以 base64 读取,查看 读取音频文件示例

内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图