Skip to content

Upload Server

Case 1

create server.py:

from http.server import HTTPServer, SimpleHTTPRequestHandler
import sys

class UploadHandler(SimpleHTTPRequestHandler):
    def do_POST(self):
        content_length = int(self.headers['Content-Length'])
        file_data = self.rfile.read(content_length)

        filename = self.path.strip('/')
        if not filename:
            filename = 'uploaded_file'

        with open(filename, 'wb') as f:
            f.write(file_data)

        self.send_response(201)
        self.end_headers()
        self.wfile.write(f'File {filename} uploaded successfully'.encode())

if __name__ == '__main__':
    port = 8000
    httpd = HTTPServer(('0.0.0.0', port), UploadHandler)
    print(f'Server started on port {port}...')
    httpd.serve_forever()

Run

python3 server.py

Use cases:

#
curl --upload-file my_document.txt http://localhost:8000/my_document.txt

#
curl -X POST --data-binary "@image.png" http://localhost:8000/image.png

Case 2

Install

pip install uploadserver

python3 -m uploadserver

Use cases:

curl -X POST http://localhost:8000/upload -F "[email protected]"