#!/usr/bin/env python3
from http.server import HTTPServer, SimpleHTTPRequestHandler
import cgi
import os

UPLOAD_DIR = "uploads"
os.makedirs(UPLOAD_DIR, exist_ok=True)

class UploadHandler(SimpleHTTPRequestHandler):
    def do_POST(self):
        content_type = self.headers.get('Content-Type')
        if not content_type:
            self.send_response(400)
            self.end_headers()
            return

        form = cgi.FieldStorage(
            fp=self.rfile,
            headers=self.headers,
            environ={'REQUEST_METHOD':'POST'}
        )

        for field in form.keys():
            fileitem = form[field]
            if fileitem.filename:
                filepath = os.path.join(UPLOAD_DIR, os.path.basename(fileitem.filename))
                with open(filepath, 'wb') as f:
                    f.write(fileitem.file.read())

        self.send_response(200)
        self.end_headers()
        self.wfile.write(b"File uploaded successfully\n")

if __name__ == "__main__":
    port = 8910
    server = HTTPServer(("0.0.0.0", port), UploadHandler)
    print(f"Serving on port {port}, upload directory: {UPLOAD_DIR}")
    server.serve_forever()
