|
- #!/usr/bin/python
-
- try:
-
- import sys, os
-
- sys.path.append(os.getcwd()+'/cgi-bin')
-
- 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','<br>')}
- except:
- out = {'exc': e}
- print
- print str(out)
|