On 26/08/2010 21:14, Navkirat Singh wrote:

On 27-Aug-2010, at 1:32 AM, Dave Angel wrote:

Navkirat Singh wrote:
Hey guys,

I am programming a webserver, I receive a jpeg file with the POST
method.The file (.jpeg) is encoded in bytes, I parse the bytes by
decoding them to a string. I wanted to know how i could write the
file (now a string) as a jpeg image on disk. When I try to encode the
same string to a bytes and write them in binary format to disk, the
file is not recognized as jpeg. I would be grateful if someone could
help me with this.


Regards,
Nav
If by "decoding them to a string" you mean converting to Unicode, then
you've already trashed the data. That's only valid if the bytes had
been encoded from valid Unicode characters, and then only if you use
the corresponding decoding technique.

If you mean some other decoding, then the question is meaningless
without telling us just what the decoding is, preferably with some code.

It also might be useful to know what version of Python you're using,
when you post the code.

DaveA


Dave,

I am using Python3 and I receive a byte stream with a jpeg attached sent
by the web browser over a socket, which looks like this:

b': image/jpeg\r\nAccept: text/*\r\nReferer:
http://127.0.0.1:8001/\r\nAccept-Language: en-us\r\nAccept-Encoding:
gzip, deflate\r\nContent-Length: 91783\r\nConnection:
keep-alive\r\n\r\n\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff\xdb\x00\x84\x00\x03\x02\x02\x03\x02\x02\x03\x03\x03\x03\x04\x03\x03\x04\x05\x08\x05\x05\x04\x04\x05\n\x07\x07\x06\x08\x0c\n\x0c\x0c\x0b\n\x0b\x0b\r\x0e\x12\x10\r\x0e\x11\x0e\x0b\x0b\x10\x16\x10\x11\x13\x14\x15\x15\x15\x0c\x0f

 From the above, I need to:

a) Split the header content from the image content, which comes after
the keep-alive\r\n\r\n part

b) Then write the image content to file for further use as a jpeg.

Try:

    image = header.split(b'keep-alive\r\n\r\n', 1)[-1]
    open(image_path, 'wb').write(image)
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to