#!/usr/bin/python try: import sys, os sys.path.append('../lib/py') sys.path.append('../erpnext') def getTraceback(): import sys, traceback, string type, value, tb = sys.exc_info() body = "Traceback (innermost last):\n" list = traceback.format_tb(tb, None) \ + traceback.format_exception_only(type, value) body = body + "%-20s %s" % (string.join(list[:-1], ""), list[-1]) return body import cgi import webnotes import webnotes.auth import webnotes.utils import webnotes.utils.file_manager import webnotes.db import webnotes.defs sys.path.append(webnotes.defs.modules_path) form = cgi.FieldStorage() webnotes.form_dict = {} for each in form.keys(): webnotes.form_dict[each] = form.getvalue(each) n = form.getvalue('name') # authenticate webnotes.auth.HTTPRequest() # get file res = webnotes.utils.file_manager.get_file(n) fname = res[0] if hasattr(res[1], 'tostring'): fcontent = res[1].tostring() else: fcontent = res[1] if form.getvalue('thumbnail'): tn = webnotes.utils.cint(form.getvalue('thumbnail')) try: from PIL import Image import cStringIO fobj = cStringIO.StringIO(fcontent) image = Image.open(fobj) image.thumbnail((tn,tn*2), Image.ANTIALIAS) outfile = cStringIO.StringIO() if image.mode != "RGB": image = image.convert("RGB") image.save(outfile, 'JPEG') outfile.seek(0) fcontent = outfile.read() except: pass import mimetypes print "Content-Type: %s" % (mimetypes.guess_type(fname)[0] or 'application/unknown') print "Content-Disposition: filename="+fname.replace(' ', '_') print "Cache-Control: max-age=3600" print print fcontent except Exception, e: print "Content-Type: text/html" try: out = {'message':'', 'exc':getTraceback().replace('\n','
')} except: out = {'exc': e} print print str(out)