On Wed, 07 Oct 2009 13:24:28 -0700, Victor Subervi <victorsube...@gmail.com> wrote:

I did that. In fact, just to make things easier, I wrote out exactly what is
supposed to be rendered, as below:

#!/usr/local/bin/python
import cgitb; cgitb.enable()
import MySQLdb
import cgi
import sys,os
sys.path.append(os.getcwd())
from login import login
user, passwd, db, host = login()
form = cgi.FieldStorage()
db = MySQLdb.connect(host, user, passwd, db)
cursor= db.cursor()
sql = "select pic1 from products where id='1';"
cursor.execute(sql)
content = cursor.fetchall()[0][0].tostring()
cursor.close()
print '''Content-Type: image/jpeg'''    # Only print one line

Content-Encoding: base64
'''
print
print content.encode('base64')


Just to reiterate what Gabriel and Carsten have pointed out, I'd suggest changing the last few lines of the script, as the comments below indicate:

print '''Content-Type: image/jpeg''' # One header line
print '''Content-Encoding: base64''' # Another header line. Note *no* blank line between them
print                                # Blank line signals the end of the headers
print content.encode(base64) # Base64-encoded content comes *after* the blank line

If you include extra blank lines after the headers, the browser will misunderstand where the binary image data begins, and so will see a malformed JPEG.

If this doesn't work, I suggest changing the content-type header to text/plain and trying to manually decode and check the image data to ensure it's valid.


On Wed, Oct 7, 2009 at 2:47 PM, Gabriel Genellina <gagsl-...@yahoo.com.ar>wrote:

En Wed, 07 Oct 2009 12:00:13 -0300, Victor Subervi
<victorsube...@gmail.com> escribió:

> print '''Content-Type: image/jpeg
>
> '''
> print
> print content

On Wed, Oct 7, 2009 at 9:51 AM, Gabriel Genellina <gagsl-
p...@yahoo.com.ar>wrote:

> That's still wrong. The output should be:
>
> - a line containing Content-Type: image/jpeg
> - a blank line (no more!)
        ^^^^^^^^^^^^^^^^^^^^^^^^^
> - the actual image data

--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list




--
Rami Chowdhury
"Never attribute to malice that which can be attributed to stupidity" -- Hanlon's Razor
408-597-7068 (US) / 07875-841-046 (UK) / 0189-245544 (BD)
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to