Python Flask 实现云盘代码:含文件上传与类型检查及目录创建逻辑
```python # 导入所需模块 import os from flask import Flask, request, send_from_directory app = Flask(__name__) # 定义上传文件路径 UPLOAD_FOLDER = 'uploads' if not os.path.exists(UPLOAD_FOLDER): os.makedirs(UPLOAD_FOLDER) # 设置允许的文件格式 ALLOWED_EXTENSIONS = {'txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'} def allowed_file(filename): # 检查文件扩展名是否在允许列表中 return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS @app.route('/upload', methods=['POST']) def upload_file(): if 'file' not in request.files: return '没有文件部分', 400 file = request.files['file'] if file.filename == '': return '没有选择文件', 400 if file and allowed_file(file.filename): filename = file.filename file.save(os.path.join(UPLOAD_FOLDER, filename)) return '文件上传成功', 200 else: return '不允许的文件类型', 400 @app.route('/files/<filename>') def uploaded_file(filename): return send_from_directory(UPLOAD_FOLDER, filename) if __name__ == '__main__': app.run(debug=True) ``` ### 需要注意的逻辑点: 1. 文件上传时,检查文件是否为空或未选择。 2. 确保上传的文件类型在允许的文件类型列表中,避免上传恶意文件。 3. 使用 `os.makedirs` 创建上传目录,确保即使目录不存在也能正常运行。 ######[AI写代码神器 | 351点数解答 | 2024-11-28 21:36:19]
- 批处理文件:依据参数表.xlsx精准修改文件.txt中p、t、s值(GPT | 811点数解答 | 2024-12-05 12:58:37)418
- 用批处理和Python实现“参数表.xlsx”与“文件.txt”数据匹配及修改(讯飞星火 | 531点数解答 | 2024-12-05 13:20:42)391
- 批处理文件:依据参数表.xlsx精准修改文件.txt特定参数值(阿里通义 | 495点数解答 | 2024-12-05 13:22:26)369
- Python代码:Flask结合数据库与饮食口味映射开发 (字节豆包 | 33点数解答 | 2025-05-12 22:13:16)164
- Flask代理FastGPT API代码分析:问题剖析与全面改进建议 (DeepSeek | 713点数解答 | 2025-06-18 16:00:34)229
- Python 利用 win32com 库:将 Excel 转换为 A4 横向 PDF 并单独打印首列(字节豆包 | 507点数解答 | 2025-03-10 15:48:12)336
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)498
- Python 实战:创建特定目录与文件并精准设置权限及错误处理(字节豆包 | 251点数解答 | 2024-12-17 14:20:25)245
- MySQL 数据库操作:用德鲁伊连接池和 Spring JDBC 实现 MVC 架构下 Student 表操作及事务测试全解析(字节豆包 | 1115点数解答 | 2025-03-19 11:17:31)314
- Spring JDBC+德鲁伊连接池:MVC架构下MySQL学生表查询、事务验证及代码实现全解析(DeepSeek | 1275点数解答 | 2025-03-19 11:21:32)299
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)382
- 打造智能任务调度与时间管理系统:功能全解析及实现秘籍(字节豆包 | 1346点数解答 | 2025-06-27 21:59:53)182