# fileUpload **Repository Path**: little77/file-upload ## Basic Information - **Project Name**: fileUpload - **Description**: 仅使用python标准库构建的文件上传模块 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-12 - **Last Updated**: 2026-01-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 文件上传服务器 一个基于Python标准库开发的简单高效的文件上传服务器,支持大文件上传。 ## 🚀 功能特性 - ✅ **大文件支持**:采用流式处理技术,分块读写文件,避免内存溢出 - ✅ **拖拽上传**:支持拖拽文件到浏览器界面进行上传 - ✅ **响应式设计**:适配各种屏幕尺寸的设备 - ✅ **现代UI**:美观简洁的用户界面,良好的用户体验 - ✅ **零依赖**:仅使用Python标准库,无需安装额外依赖 - ✅ **安全可靠**:包含错误处理和文件清理机制 ## 📋 技术栈 - **后端**:Python 3.x + http.server + socketserver - **前端**:HTML5 + CSS3 + JavaScript ## 📦 项目结构 ``` file_upload/ ├── file_upload_server.py # 主服务器文件 ├── templates/ │ ├── upload.html # 上传页面 │ └── success.html # 上传成功页面 ├── uploads/ # 上传文件存储目录 └── README.md # 项目说明文档 ``` ## 🚀 快速开始 ### 1. 克隆或下载项目 ```bash git clone https://gitee.com/little77/file-upload.git cd file_upload ``` ### 2. 启动服务器 ```bash # 默认端口 8080 python3 file_upload_server.py # 自定义端口 python3 file_upload_server.py <端口号> ``` ### 3. 访问上传页面 打开浏览器,访问: ``` http://localhost:8080 ``` ## 📤 使用方法 1. **选择文件**:点击"浏览文件"按钮选择要上传的文件 2. **拖拽上传**:也可以直接拖拽文件到上传区域 3. **查看文件信息**:选择文件后会显示文件名和大小 4. **开始上传**:点击"开始上传"按钮 5. **上传完成**:上传成功后会跳转到成功页面 ## 💡 技术实现 ### 大文件上传机制 为了支持大文件上传,服务器采用了以下技术: 1. **分块读取**:将请求体分成8KB的小块进行读取 2. **流式处理**:边读取边写入文件,避免将整个文件加载到内存 3. **分块解析**:逐块解析multipart/form-data格式 4. **内存优化**:内存占用保持在较低水平,不受文件大小影响 ## ⚙️ 配置选项 ### 端口配置 服务器默认使用8080端口,可以通过命令行参数指定其他端口: ```bash python3 file_upload_server.py 9000 # 使用9000端口 ``` ### 文件存储路径 上传的文件默认存储在`uploads`目录中,可以在代码中修改: ```python save_path = os.path.join('uploads', filename) # 修改'uploads'为其他目录 ``` ## 📝 注意事项 1. 确保服务器有足够的磁盘空间存储上传的文件 2. 上传大文件时请确保网络连接稳定 3. 服务器默认只处理multipart/form-data格式的请求 4. 文件名会自动进行安全处理(仅保留basename) ## 📄 许可证 MIT License ## 🤝 贡献 欢迎提交Issue和Pull Request! --- **Enjoy using File Upload Server!** 🎉