# flutter_file_selector **Repository Path**: jq_flutter/flutter_file_selector ## Basic Information - **Project Name**: flutter_file_selector - **Description**: flutter版本的一个文件选择器 - **Primary Language**: Dart - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 19 - **Forks**: 4 - **Created**: 2020-06-07 - **Last Updated**: 2024-08-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # flutter_file_selector ## 此项目已迁移到 [查看fget_fils](https://gitee.com/jq_flutter/fget_fils),[前往pub.dev获取](https://pub.flutter-io.cn/packages/fget_file) ### 插件介绍: > 使用中如有问题之类的话 欢迎来提 issues > Flutter版本的一个文件选择器 ,顺序按最近访问的时间排序 > 布局使用Flutter布局,安卓使用原生的MediaStore.Files类实现 > > 支持多选,支持所有文件类型 > apk下载体验 , ios暂无打包 自行拉取代码编译 ![安卓] ![安卓] ![安卓] ![ios] ![ios] **使用到的插件** | 插件依赖 | pub仓库地址 | | ---- | ---- | | permission_handler | pub | | file_picker | pub | ### 示例: ```yaml # 在pubspec.yaml 中引入依赖 方式1 flutterfileselector: git: url: https://gitee.com/jrnet/flutter_file_selector # 在pubspec.yaml 中引入依赖 方式2 flutterfileselector: ^0.0.1 ``` ```javascript List fileTypeEnd = [".pdf", ".doc", ".docx",".xls",".xlsx"]; // 显示筛选按钮 FlutterSelect( /// todo: 标题 title: "选择文件", /// todo: 按钮 btn: Text("选择文档"), /// todo: 最大可选 maxCount: 3, /// todo: 往数组里添加需要的格式,默认是[".pdf", ".doc", ".docx",".xls",".xlsx"] fileTypeEnd: fileTypeEnd, /// todo: 自定义下拉选项,不传则默认 dropdownMenuItem: [ DropDownModel(lable: "文档",value: [".pdf",".txt",".word",".ppt"]), DropDownModel(lable: "图片",value: [".jpg",".png",".bmp",".jpeg",".gif"]), ], valueChanged: (v){ }, ), // 不显示筛选按钮 FlutterSelect( /// todo: 标题 title: "选择文件", /// todo: 按钮 btn: Text("选择文档"), /// todo: 最大可选 maxCount: 3, /// todo: 不展示筛选 isScreen: false, /// todo: 往数组里添加需要的格式,默认是[".pdf", ".doc", ".docx",".xls",".xlsx"] fileTypeEnd: fileTypeEnd, valueChanged: (v){ }, ), ``` ### 可选参数 | 参数名 | 值 | | ---- | ---- | | String title | 标题 - 默认:文件选择 | | List fileTypeEnd | 文件类型 - 默认:[".pdf", ".doc", ".docx",".xls",".xlsx"] | | bool isScreen | 筛选 - 默认:关闭 | | int maxCount | 可选最大总数 - 默认 9 | | List dropdownMenuItem | 类型 - 默认:全部(fileTypeEnd)、文档、图片、视频、音频 | ### 返回的参数: | 参数名 | 值 | | ---- | ---- | | File file | 文件 | | String fileName | 文件名称 | | int fileSize | 文件大小 | | String filePath | 文件路径 | | int fileDate | 文件日期时间 | ### 新计划-待实现: - 新增目录列表 ,类似手机自带的文件管理器 - 仅安卓端 - 常用文件格式的图标自定义- 仅安卓端 - 常用软件下的图片分类(可直接选 微信、qq、企业微信 保存的所有图片)- 仅安卓端 ### 注意:一定要有权限、必需配置
安卓需配置目录访问权限 配置AndroidManifest.xml 文件,application里加入如下代码
``` // tools:replace="android:resource" 需要导入tools 才能使用 // AndroidManifest.xml 的 manifest 中 引入 xmlns:tools="http://schemas.android.com/tools" ``` IOS 的配置 [点此查看]( https://github.com/miguelpruivo/flutter_file_picker/wiki/Setup#--ios) ### 更新日志: #### 2020-06-07 - 首个版本 - 优化了全部目录检索,并支持指定 自定义展示文件类型 #### 2020-06-09 - 修复了部分设备无法运行 - 集成了权限检查 #### 2020-06-10 - 兼容ios - 修改了type解析 - 修复了部分bug #### 2020-06-18 - 修改视图页延迟检索,先进入ui页面 避免卡死 - 添加参数 可选数量 `maxCount` #### 2020-06-19 - 添加、更新了示例 example - 文件类型选择 更改为 下拉选择 #### 2021-01-20 - 添加、修改了 图标 - 优化了代码,修复了ios问题 - 优化了 选择类型 - 选择类型、标题 可自定义 - 更新了文档 #### 2021-01-27 - 优化了部分逻辑 - 更新了默认选择 - 更改了 选择 按钮 #### 2021-01-28 - 更新了示例 - 更新了使用文档 - 更新了IOS端的获取