Files
drhider/site/routes/upload_bp.py
T

29 lines
993 B
Python

"""
POST /api/upload — загрузить ОДИН файл.
Каждый вызов — новое соединение, передал → закрыл.
Сессия связывает файлы через session_id.
"""
from flask import Blueprint, request, jsonify
from session import create_session, add_file, file_count
upload_bp = Blueprint("upload", __name__, url_prefix="/api")
@upload_bp.route("/upload", methods=["POST"])
def upload():
sid = request.form.get("session", "")
if not sid:
sid = create_session()
uploaded = request.files.getlist("files")
if not uploaded:
return jsonify({"ok": False, "error": "No file"}), 400
f = uploaded[0]
if not f.filename:
return jsonify({"ok": False, "error": "No filename"}), 400
ok = add_file(sid, f.filename, f.read())
if not ok:
return jsonify({"ok": False, "error": "Session not found"}), 404
return jsonify({"ok": True, "session": sid, "count": file_count(sid)})