Skip to content

Jcc99/local_files_shareServer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python HTTP 文件共享工具

一个功能强大的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.txt

requirements.txt内容:

netifaces>=0.11.0
qrcode[pil]>=7.4.2
Pillow>=10.0.0

使用方法

1. 启动程序

python http_file_sharing_tool.py

2. 配置共享

  1. 选择共享文件夹:点击"浏览"按钮选择要共享的文件夹
  2. 选择网络接口:从下拉列表中选择要使用的IP地址
  3. 设置端口:默认端口为1238,可修改为1024-65535之间的任意端口
  4. 选择绑定地址:建议使用"0.0.0.0"绑定所有接口

3. 启动共享

  1. 点击"启动共享"按钮
  2. 查看生成的访问地址和二维码
  3. 在同一网络下的设备中使用浏览器访问该地址

4. 访问共享文件

  • PC访问:在浏览器中输入显示的URL地址
  • 手机访问:扫描生成的二维码
  • 多设备访问:支持多个设备同时访问和下载文件

高级功能

1. 配置文件

程序会自动创建 file_sharing_config.json 文件保存以下配置:

  • 上次选择的共享文件夹路径
  • 上次选择的IP地址
  • 端口号设置
  • 绑定地址设置

2. 日志功能

  • 实时显示服务器运行日志
  • 支持清空日志
  • 支持保存日志到文件

3. 二维码功能

  • 自动生成访问二维码
  • 支持保存二维码为PNG图片
  • 支持刷新二维码

4. 网络测试

  • 测试端口是否可用
  • 测试IP地址连通性

命令行参数

目前版本支持通过配置文件运行,后续版本可能添加命令行参数支持。

技术特点

服务器端

  • 使用Python标准库的 http.server 模块
  • 支持多线程并发处理
  • 自动识别文件MIME类型
  • 优化大文件传输性能

网络功能

  • 自动检测所有网络接口
  • 支持IPv4地址
  • 显示网卡详细信息(MAC地址、子网掩码等)

安全性

  • 路径安全检查,防止目录遍历攻击
  • 只共享指定目录内的文件
  • 支持设置绑定地址,控制访问范围

常见问题解决

1. 无法访问共享

  • 检查防火墙设置,确保端口已开放
  • 确认客户端与服务器在同一局域网
  • 尝试使用"0.0.0.0"作为绑定地址

2. 二维码扫描失败

  • 确保手机与电脑在同一网络
  • 检查IP地址是否正确
  • 尝试刷新二维码

3. 文件下载慢

  • 检查网络连接质量
  • 确保没有其他程序占用带宽
  • 服务器会自动优化传输性能

4. 多设备访问限制

  • 默认支持多设备同时访问
  • 如有连接数限制,请检查路由器设置

项目结构

http_file_sharing_tool.py     # 主程序文件
file_sharing_config.json      # 配置文件(自动生成)
qr_code_*.png                 # 保存的二维码文件(可选)
file_sharing_log_*.txt        # 保存的日志文件(可选)

开发计划

  • 添加HTTPS支持
  • 增加用户认证功能
  • 添加文件上传功能
  • 支持带宽限制
  • 添加访问统计功能
  • 支持主题切换

贡献指南

欢迎提交Issue和Pull Request!

  1. Fork本仓库
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启Pull Request

许可证

本项目采用MIT许可证。详见 LICENSE 文件。

支持与反馈

如果您在使用过程中遇到问题或有改进建议,请:

  1. 查看常见问题部分
  2. 在GitHub Issues中提交问题
  3. 通过Pull Request贡献代码

致谢

感谢以下开源项目:


注意:本工具仅用于局域网内文件共享,请勿用于公网环境。共享敏感文件时请注意安全。

About

本地局域网内http文件共享服务器

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages