更新记录

1.0.0(2025-07-05)

Android 文件读取插件

API 一览表

API名称 参数 返回值 简要说明
getDICMDir offset?: number | null, limit?: number | null Array 获取相册目录下的图片和视频,支持分页,视频带封面
uriToBase64 url: string string 将文件 uri 转为 base64 字符串
getDocDir filesType?: Array | null Array 获取非图片和视频的文件,可按 MIME Type 过滤
startLocalImageServer port: number void 启动本地图片 HTTP 服务
stopLocalImageServer void 关闭本地图片 HTTP 服务

使用说明

插件只提供API无具体界面,适用于需要高度个性化的界面设计,可适用插件提供的api获取数据进行渲染页面

示例:

    import {
        getDICMDir,
        uriToBase64,
        startLocalImageServer,
        getDocDir
    } from '@/uni_modules/hsw-file-upload'
    import {ref} from 'vue'
    const applicationType = ref('image/gif,audio/aac,video/mp4')
    const port = ref(8080)

    //开启本地服务 这个必须开启 
    startLocalImageServer(port.value)

    // 获取指定类型文件
    const types = applicationType.value.split(',')
    const uris = getDocDir(types)
    filesList.value = uris
    console.log('指定文件类型:', applicationType.value, 'urls:', uris);

    // 获取相册文件
    const uris = getDICMDir(0, 10)
    mediaList.value = uris
    console.log('媒体类型:', mediaList.value);

    // 例如上传选择的文件
    uni.downloadFile({
    url:"http://localhost:" + port.value + '/file?uri=' + uris[0].uri,
    success: (res) => {
        // 在此处可拿到下载后的文件 res.tempFilePath地址
        // 然后拿到 res.tempFilePath 使用 uni.uploadFile 上传就行了
    },
    fail: (err) => {
        console.log('err', err);
    }
})

API 详细说明

#

1. 获取相册目录文件

getDICMDir(offset?: number | null, limit?: number | null): Array<DICMType>
  • 参数
    • offset:可选,分页起始位置,不传则获取全部
    • limit:可选,分页数量,不传则获取全部
  • 返回
    • Array<DICMType>,每项包含图片/视频的 uri、name、mimeType,视频还包含封面 base64 字符串(cover 字段)

示例:

// 获取全部
const all = getDICMDir();

// 分页获取(如每页20条,第2页)
const page2 = getDICMDir(20, 20);

2. 将文件 uri 转为 base64

uriToBase64(url: string): string
  • 参数
    • url:文件的 content uri
  • 返回
    • base64 字符串(带 data:image/jpeg;base64, 前缀)

示例:

const base64 = uriToBase64('content://media/external/images/media/123');

3. 获取任意类型文件

getDocDir(filesType?: Array<string> | null): Array<FileInfo>
  • 参数
    • filesType:可选,MIME Type 数组,指定要获取的文件类型。不传则返回所有非图片和视频类型的文件。
  • 返回
    • Array<FileInfo>,每项包含 uri、name、mimeType

示例:

// 获取所有 pdf 和 word 文件
getDocDir(['application/pdf', 'application/msword']);

4. 启动/关闭本地图片 HTTP 服务

startLocalImageServer(port: number): void
stopLocalImageServer(): void
  • 参数
    • port:端口号
  • 说明
    • 启动后可通过 http://localhost:端口/file?uri=xxx 访问本地图片

类型定义

interface DICMType {
  uri: string;        // 文件 content uri
  name: string;       // 文件名
  mimeType: string;   // MIME 类型
  cover?: string;     // 视频第一帧封面(base64),图片为 null
}

interface FileInfo {
  uri: string;
  name: string;
  mimeType: string;
}

权限说明

首次调用会自动请求存储权限,请确保用户授权。


其它说明

  • 支持 Android 10+ 及更低版本的 DCIM 目录读取。
  • 视频文件自动生成第一帧封面(base64)。
  • 分页兼容老设备,自动处理 LIMIT/OFFSET 不支持问题。

常见问题

  • 如何只获取视频或图片?
    可根据 mimeType 字段自行筛选。 参考

  • 如何获取其它目录的文件?
    可用 getDocDir 并传递对应的 MIME Type。


如需更多帮助,请参考 uni-app UTS 插件开发文档


平台兼容性

云端兼容性

阿里云 腾讯云 支付宝云

uni-app(4.19)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× - × × - × 5.0 × ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × ×

uni-app x(4.19)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - - - -

其他

多语言 暗黑模式 宽屏模式

hsw-file-upload

开发文档

UTS 语法 UTS API插件 UTS uni-app兼容模式组件 UTS 标准模式组件 Hello UTS

隐私、权限声明

1. 本插件需要申请的系统权限列表:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问