#!/usr/bin/env python import cgi import cgitb import os import db import datetime import json import base64 cgitb.enable() class Error(Exception): pass class JSONReponse(object): def __init__(self, data): self.data = data def respond(self): print "Content-Type: application/json\n\n" + json.dumps(self.data) def local_files_path(): return os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "files")) def local_file(name): return os.path.join(local_files_path(), name) def new_file(extension): return "{0}{1}".format(datetime.datetime.now().strftime("%s%f"), extension) class Handler(object): def __init__(self): request = cgi.FieldStorage() if os.environ["REQUEST_METHOD"] == "POST": self.handle_post(request) else: self.handle_get(request) def handle_get(self, request): pass def handle_post(self, request): imagedata = data["image"] filename = new_file(os.path.splitext(fileitem.filename)[1]) dest_path = local_file(filename) open(dest_path, "wb").write(base64.b64decode(imagedata.replace("data:image/png;base64,", ""))) db.GalleryImage.create( path=filename, added_by_ip=os.environ["REMOTE_ADDR"], added_by_name=data.getvalue("name", None) added_by_detail=data.getvalue("detail", None) ) return JSONResponse({"ok": True})