Appearance
qin.chooseFile
从本地选择文件。
本API主要用于选择非媒体文件,如果选择的文件是媒体文件,另有3个专用API:
平台差异说明
| H5 | 微信小程序 | 小红书小程序 | 抖音小程序 | 快手小程序 |
|---|---|---|---|---|
| √ | x(可使用 wx.chooseMessageFile ) | x | x | x |
- 选择文件大多为了上传, qin ui 封装了更完善的 uni-file-picker组件。
OBJECT 参数说明
| 参数名 | 类型 | 默认值 | 必填 | 说明 | 平台差异说明 |
|---|---|---|---|---|---|
| count | Number | 100 | 否 | 最多可以选择的文件数量 | 见下方说明 |
| type | String | 'all' | 否 | 所选的文件的类型 | 见下方说明 |
| extension | Array<String> | 否 | 根据文件拓展名过滤,每一项都不能是空字符串。默认不过滤。 | 见下方说明 | |
| sourceType | Array<String> | ['album','camera'] | 否 | (仅在type为 image 或 video 时可用) album 从相册选图, camera 使用相机,默认二者都有。如需直接开相机或直接选相册,请只使用一个选项 | |
| success | Function | 是 | 成功则返回图片的本地文件路径列表 tempFilePaths | ||
| fail | Function | 否 | 接口调用失败的回调函数 | ||
| complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
Tips
- count 值在 H5 平台的表现,基于浏览器本身的规范。目前测试的结果来看,只能限制单选/多选,并不能限制数量。并且,在实际的手机浏览器很少有能够支持多选的。
- sourceType 值在 H5 平台根据浏览器的不同而表现不同,一般不可限制仅使用相册,部分浏览器也无法限制是否使用相机。
- extension暂只支持文件后缀名,例如
['.zip','.exe','.js'],不支持application/msword等类似值
注:文件的临时路径,在应用本次启动期间可以正常使用,如需持久保存,需在主动调用 qin.saveFile,在应用下次启动时才能访问得到。
OBJECT.type 的合法值
| 值 | 说明 |
|---|---|
| all | 从所有文件选择 |
| video | 只能选择视频文件 |
| image | 只能选择图片文件 |
Tips
- 如果type属性和extension同时存在,例如
{type:'image',extension:['.png','.jpg']},则会选择image/png,image/jpg文件 - 如果只配置extension属性,例如
{extension:['.doc','.xlsx','.docx']},则会选择.doc,.xlsx,.docx文件,详情见accept 属性 - 在微信环境中,如果
type="all",则extension属性失效
success 返回参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| tempFilePaths | Array<String> | 文件的本地文件路径列表 |
| tempFiles | Array<Object>、Array<File> | 文件的本地文件列表,每一项是一个 File 对象 |
File 对象结构如下
| 参数 | 类型 | 说明 |
|---|---|---|
| path | String | 本地文件路径 |
| size | Number | 本地文件大小,单位: B |
| name | String | 包含扩展名的文件名称,仅 H5 支持 |
| type | String | 文件类型,仅 H5 支持 |
示例
js
qin.chooseFile({
//默认100
count: 6,
extension: ['.zip', '.doc'],
success: (theRes) => {
console.log(JSON.stringify(theRes.tempFilePaths));
},
});
// 选择图片文件
qin.chooseFile({
count: 10,
type: 'image',
success: (theRes) => {
// tempFilePath可以作为img标签的src属性显示图片
const tempFilePaths = theRes.tempFiles;
},
});qin.chooseFile({
//默认100
count: 6,
extension: ['.zip', '.doc'],
success: (theRes) => {
console.log(JSON.stringify(theRes.tempFilePaths));
},
});
// 选择图片文件
qin.chooseFile({
count: 10,
type: 'image',
success: (theRes) => {
// tempFilePath可以作为img标签的src属性显示图片
const tempFilePaths = theRes.tempFiles;
},
});wx.chooseMessageFile
从微信聊天会话中选择文件。
平台差异说明
| H5 | 微信小程序 | 支付宝小程序 | 小红书小程序 | 抖音小程序 | 快手小程序 |
|---|---|---|---|---|---|
| x | √(基础库2.5.0+) | x | x | x | x |