filesystemmanager.readfile(object object)
基础库 或更高版本; 若版本较低,建议采取 兼容处理 。
支小宝客户端 支持
安诊儿客户端 支持
主体: 企业支付宝小程序 、 个人支付宝小程序
读取文件内容。
object object
查看示例
属性 | 类型 | 默认值 | 必填 | 兼容性 | 描述 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
filepath | string | - | 是 | - | 文件路径,支持本地文件和代码包文件。 |
||||||||||||||||||||||||||||
encoding | string | - | 否 | - | 指定读取文件数据时使用的编码方式。如果不传 encoding,则以 arraybuffer 读取文件的二进制内容。 |
||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
position | number | - | 否 | 支付宝: 10.5.16 |
指定开始读取文件的位置,单位:byte; 读取范围为 [position, position length);有效值范围:[0, maxlength - 1] 。若不指定,则从文件开始位置读。 |
||||||||||||||||||||||||||||
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 对应的文件是否存在。 |
// 获取文件管理器
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 中配置文件路径。
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 参数
-
bugios: 10.5.20 之前的版本,当 encoding 为 hex 时,返回 data 有前缀 'length={xxx},bytes='。
q:如何读取 json 文件?
可以取 encoding 值为 utf8 读取文件,查看 读取 json 文件示例。
q:音频文件、图片文件 怎么读取?
通常以 base64 读取,查看 读取音频文件示例。