一个功能强大的Python GUI工具,用于在局域网内快速共享文件,支持多设备访问、二维码扫描等功能。
- 🖥️ 图形化界面:用户友好的GUI操作界面
- 🌐 多网卡支持:自动检测并选择网络接口和IP地址
- 📁 文件夹共享:选择任意文件夹进行HTTP共享
- 📱 二维码访问:自动生成访问二维码,手机扫描即可访问
- 🔄 配置保存:自动保存上一次的配置,重启后无需重新设置
- 🔗 多设备支持:支持多个设备同时访问共享文件
- 📊 实时日志:显示服务器运行状态和访问日志
- ⚡ 高性能:优化传输性能,支持大文件快速下载
+---------------------------------------------------+
| HTTP 文件共享工具 |
+---------------------------------------------------+
| [共享设置] |
| 共享文件夹: [_________________] [浏览] |
| |
| [网络设置] |
| 选择IP: [下拉选择] [刷新] |
| 端口号: [1238] 绑定: [0.0.0.0] |
| |
| [网卡信息] |
| 显示当前网卡的详细信息 |
+-------------------+------------------------------+
| [启动共享] [停止共享] [测试连接] | [访问信息] |
| 访问地址: http:// |
| [二维码显示区域] |
| 保存二维码 刷新 |
+-------------------+------------------------------+
| [日志] |
| 显示运行日志... |
| [清空日志] [保存日志] |
+---------------------------------------------------+
pip install netifaces qrcode[pil] pillow或者使用requirements.txt:
pip install -r requirements.txtrequirements.txt内容:
netifaces>=0.11.0
qrcode[pil]>=7.4.2
Pillow>=10.0.0
python http_file_sharing_tool.py- 选择共享文件夹:点击"浏览"按钮选择要共享的文件夹
- 选择网络接口:从下拉列表中选择要使用的IP地址
- 设置端口:默认端口为1238,可修改为1024-65535之间的任意端口
- 选择绑定地址:建议使用"0.0.0.0"绑定所有接口
- 点击"启动共享"按钮
- 查看生成的访问地址和二维码
- 在同一网络下的设备中使用浏览器访问该地址
- PC访问:在浏览器中输入显示的URL地址
- 手机访问:扫描生成的二维码
- 多设备访问:支持多个设备同时访问和下载文件
程序会自动创建 file_sharing_config.json 文件保存以下配置:
- 上次选择的共享文件夹路径
- 上次选择的IP地址
- 端口号设置
- 绑定地址设置
- 实时显示服务器运行日志
- 支持清空日志
- 支持保存日志到文件
- 自动生成访问二维码
- 支持保存二维码为PNG图片
- 支持刷新二维码
- 测试端口是否可用
- 测试IP地址连通性
目前版本支持通过配置文件运行,后续版本可能添加命令行参数支持。
- 使用Python标准库的
http.server模块 - 支持多线程并发处理
- 自动识别文件MIME类型
- 优化大文件传输性能
- 自动检测所有网络接口
- 支持IPv4地址
- 显示网卡详细信息(MAC地址、子网掩码等)
- 路径安全检查,防止目录遍历攻击
- 只共享指定目录内的文件
- 支持设置绑定地址,控制访问范围
- 检查防火墙设置,确保端口已开放
- 确认客户端与服务器在同一局域网
- 尝试使用"0.0.0.0"作为绑定地址
- 确保手机与电脑在同一网络
- 检查IP地址是否正确
- 尝试刷新二维码
- 检查网络连接质量
- 确保没有其他程序占用带宽
- 服务器会自动优化传输性能
- 默认支持多设备同时访问
- 如有连接数限制,请检查路由器设置
http_file_sharing_tool.py # 主程序文件
file_sharing_config.json # 配置文件(自动生成)
qr_code_*.png # 保存的二维码文件(可选)
file_sharing_log_*.txt # 保存的日志文件(可选)
- 添加HTTPS支持
- 增加用户认证功能
- 添加文件上传功能
- 支持带宽限制
- 添加访问统计功能
- 支持主题切换
欢迎提交Issue和Pull Request!
- Fork本仓库
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启Pull Request
本项目采用MIT许可证。详见 LICENSE 文件。
如果您在使用过程中遇到问题或有改进建议,请:
- 查看常见问题部分
- 在GitHub Issues中提交问题
- 通过Pull Request贡献代码
感谢以下开源项目:
注意:本工具仅用于局域网内文件共享,请勿用于公网环境。共享敏感文件时请注意安全。