Return an image to the browser in python, cgi-bin
11,507
- You may need to open the file as
"rb"
(in windows based environments it's usually the case. - Simply printing may not work (as it adds '\n' and stuff), better just
write
it tosys.stdout
. - The statement
print "Content-type: image/png\n\n"
actually prints 3 newlines (as print automatically adds one "\n" in the end. This may break your PNG file.
Try:
sys.stdout.write( "Content-type: image/png\r\n\r\n" + file(filename,"rb").read() )
- HTML responses require carriage-return, new-line
Related videos on Youtube
Author by
iboeno
Updated on April 26, 2022Comments
-
iboeno about 2 years
I'm trying to set up a python script in cgi-bin that simply returns a header with content-type: image/png and returns the image. I've tried opening the image and returning it with
print f.read()
but that isn't working.EDIT: the code I'm trying to use is:
print "Content-type: image/png\n\n" with open("/home/user/tmp/image.png", "r") as f: print f.read()
This is using apache on ubuntu server 10.04. When I load the page in chrome I get the broken image image, and when I load the page in firefox I get
The image http://localhost/cgi-bin/test.py" cannot be displayed, because it contains errors.
-
yantrab almost 14 yearsIf you post the code, you will get better responses. Also, if you could describe what is happening, rather than just "that isn't working", we'll have more clues to work from.
-
-
dsgdfg almost 8 yearshow will be sure
all string characters reading correctly ?
. I try this method million time but haven't any success. Did you have any idea aboutprint
function ? Where moderator ? Don't waste users lives ! -1