84 lines
1.8 KiB
Plaintext
84 lines
1.8 KiB
Plaintext
|
#!/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','<br>')}
|
||
|
except:
|
||
|
out = {'exc': e}
|
||
|
print
|
||
|
print str(out)
|