WiFi文件传输应用 - 功能介绍
下载体验地址 - apk下载
📱 项目概述
WiFi文件传输是一款基于 Android 平台的本地文件传输应用。它可以在 Android 设备上启动一个轻量级 HTTP 服务器,让同一 WiFi 网络下的其他设备(手机、电脑、平板等)通过浏览器访问并上传/下载文件,无需安装任何客户端软件。
✨ 核心功能
1. HTTP 服务器管理
- 自动启动服务器:应用启动后自动检测 WiFi 连接并启动服务器
- 智能端口选择:默认使用 8080 端口,如被占用自动尝试其他端口
- 服务器状态显示:实时显示服务器运行状态
- 一键启动/停止:手动控制服务器的启动和停止
2. 文件上传功能
- 多文件上传:支持同时选择多个文件进行上传
- 拖拽上传:Web 界面支持拖拽文件到上传区域
- 断点续传:上传中断后可以从中断位置继续上传,无需重新开始
- 上传进度显示:实时显示上传进度条和百分比
- 暂停/继续:支持暂停和继续上传操作
- 文件大小限制:单文件最大支持 100MB
3. 文件下载功能
- 一键下载:点击下载按钮即可下载文件
- 断点续传:下载中断后支持断点续传
- 文件信息显示:显示文件大小、修改时间等信息
4. 文件管理功能
- 文件列表:显示所有已上传的文件
-
文件预览:
- 图片文件:支持在线预览(jpg、jpeg、png、gif、webp)
- 文本文件:支持在线预览(txt、json、xml、html、css、js、md、log)
- 文件删除:支持删除单个文件或清空所有文件
- 文件刷新:手动刷新文件列表
5. 访问地址分享
- 二维码生成:自动生成包含访问地址的二维码
- 地址复制:一键复制访问地址到剪贴板
-
地址显示:清晰显示服务器访问地址(如:
http://192.168.1.100:8080)
6. 文件选择与管理
- 本地文件选择:从 Android 设备选择文件添加到服务器
-
存储目录管理:文件存储在
AFileTransferFiles目录下 - 打开存储目录:快速打开文件存储目录
🔧 技术特性
网络功能
-
智能 IP 获取:
- 优先从 ConnectivityManager 获取 WiFi 网络 IP
- 优先选择 10.x.x.x 和 192.168.x.x(真实 WiFi 常用网段)
- 排除 172.17.x.x(容器/虚拟化网段)
- 支持从物理网卡扫描获取 IP
- 网络状态检测:自动检测 WiFi 连接状态
- 多网络环境支持:支持 WiFi、热点、以太网等多种网络环境
权限管理
-
Android 版本适配:
- Android 6.0-9.0:读写存储权限
- Android 10-12:读取存储权限
- Android 13+:媒体权限(图片、视频、音频)
- Android 11+:全部文件访问权限(MANAGE_EXTERNAL_STORAGE)
- 权限引导:自动检测并引导用户授予必要权限
安全特性
- 文件名安全处理:防止路径遍历攻击
- 文件大小验证:防止上传超大文件
- 文件类型检查:安全的文件类型识别
🎨 用户界面
Android 应用界面
- 简洁设计:Material Design 风格
- 状态显示:清晰的服务器状态和访问地址显示
- 二维码展示:大尺寸二维码便于扫描
- 操作按钮:启动/停止、复制地址、选择文件、打开目录等
Web 管理界面
- 现代化 UI:清新的薄荷绿配色方案
- 响应式设计:适配手机、平板、电脑等不同设备
- 拖拽上传:直观的拖拽上传体验
- 文件列表:卡片式文件列表展示
- 预览模态窗口:图片和文本文件预览
📂 文件存储
-
存储位置:
/sdcard/AFileTransferFiles/ - 文件组织:所有文件统一存储在应用目录下
-
临时文件:上传过程中使用
.tmp临时文件,完成后重命名
🌐 API 接口
应用提供以下 RESTful API:
-
GET /api/info- 获取服务器信息 -
GET /api/files- 获取文件列表 -
POST /api/upload- 上传文件(支持断点续传) -
GET /api/upload/status- 查询上传状态 -
GET /api/download- 下载文件(支持断点续传) -
DELETE /api/delete- 删除文件 -
DELETE /api/files- 删除所有文件 -
GET /api/preview- 预览文件
📋 使用场景
- 手机与电脑文件互传:无需数据线,通过 WiFi 快速传输文件
- 多设备文件共享:在同一 WiFi 网络下,多台设备共享文件
- 文件备份:将手机文件快速备份到电脑
- 临时文件服务器:快速搭建一个简单的文件服务器
- 开发调试:开发过程中快速传输测试文件
🔍 技术架构
后端(Android)
- 语言:Kotlin
- HTTP 服务器:NanoHTTPD(轻量级 HTTP 服务器库)
- 二维码生成:ZXing
- 文件管理:Android File API
- 网络管理:Android ConnectivityManager
前端(Web)
- HTML5:现代 Web 标准
- CSS3:响应式设计和动画效果
- JavaScript:文件上传、下载、预览等功能
- Fetch API:异步网络请求
核心模块
- MainActivity:主界面,管理服务器生命周期
- FileTransferServer:HTTP 服务器实现,处理所有请求
- NetworkUtils:网络工具类,获取 IP 地址和网络状态
- FileManager:文件管理工具,处理文件存储和操作
- QRCodeGenerator:二维码生成工具
- WebResourceHandler:Web 资源处理
- FilePreviewHandler:文件预览处理
📱 系统要求
- 最低 Android 版本:Android 5.0 (API 21)
- 目标 Android 版本:Android 14 (API 34)
- 网络要求:WiFi 连接(或热点、以太网)
- 存储权限:需要存储权限以保存文件
🚀 快速开始
- 安装应用:在 Android 设备上安装 APK
- 授予权限:首次启动时授予存储权限
- 连接 WiFi:确保设备连接到 WiFi 网络
- 启动服务器:应用会自动启动服务器(或手动点击启动)
- 访问 Web 界面:在其他设备浏览器中输入显示的地址
- 开始传输:通过 Web 界面上传或下载文件
💡 使用技巧
- 二维码扫描:使用其他设备扫描二维码快速访问
- 地址复制:复制访问地址发送给其他用户
- 断点续传:网络中断后重新上传/下载会自动续传
- 文件预览:图片和文本文件可以直接在浏览器中预览
- 批量操作:支持同时选择多个文件上传
⚠️ 注意事项
- 网络环境:确保所有设备在同一 WiFi 网络下
- 防火墙:某些防火墙可能阻止连接,需要允许访问
- 文件大小:单文件最大 100MB
- 服务器状态:关闭应用或停止服务器后无法访问
- 权限要求:Android 11+ 需要手动授予"所有文件访问权限"
🔄 更新日志
v1.0
- 初始版本发布
- 支持文件上传/下载
- 支持断点续传
- 支持文件预览
- 支持二维码分享
- 支持多文件上传
- 适配 Android 5.0 - 14