main.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. 注:同次提交下的esp32程序配套的上传拍照文件的python flask程序,提供上传接口。
  2. from flask import Flask, request, jsonify
  3. import os
  4. import datetime # 导入 datetime 模块
  5. app = Flask(__name__)
  6. # 配置上传文件夹
  7. UPLOAD_FOLDER = 'uploads'
  8. app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
  9. # 设置允许上传的文件类型
  10. ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif'}
  11. # 检查文件扩展名是否允许上传
  12. def allowed_file(filename):
  13. return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
  14. # 上传照片的路由
  15. @app.route('/upload', methods=['POST'])
  16. def upload_file():
  17. if 'file' not in request.files:
  18. return jsonify({'message': 'No file part'}), 400
  19. file = request.files['file']
  20. # 如果用户没有选择文件
  21. if file.filename == '':
  22. return jsonify({'message': 'No selected file'}), 400
  23. if file and allowed_file(file.filename):
  24. timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
  25. extension = file.filename.rsplit('.', 1)[1].lower()
  26. filename = f"{timestamp}.{extension}"
  27. # 生成保存路径
  28. file_path = os.path.join(app.config['UPLOAD_FOLDER'], filename)
  29. file.save(file_path)
  30. return jsonify({'message': 'File uploaded successfully', 'filename': filename}), 200
  31. return jsonify({'message': 'File not allowed'}), 400
  32. if __name__ == '__main__':
  33. # 创建上传文件夹
  34. if not os.path.exists(UPLOAD_FOLDER):
  35. os.makedirs(UPLOAD_FOLDER)
  36. # 启动 Flask 应用,并指定端口为 7002
  37. app.run(debug=True, host='0.0.0.0', port=7002)