On 27-Aug-2010, at 3:02 AM, Robert Kern wrote: > On 8/26/10 4:17 PM, Navkirat Singh wrote: > >> Here is what I needed to do: >> >> a) Separate image content from header content of the byte stream received >> from the web browser. >> b) Save the image content to disk for further use. >> >> Here is what I did. Following is just a snippet: >> >> >> #-------------HERE IS WHERE I RECEIVE THE DATA >> while True: >> buff = socket.recv(8192) >> byteStr +=buff >> if not buff: break >> #--------------ENCODING/DECODING STARTS FROM HERE (since I want to use >> split/partition functions to separate header content from the image content) >> strMsg = byteStr.decode("ISO-8859-1") >> listMsg = strMsg.split('\r\n') >> #---------------------------- >> # do some more processing to search the list for the image content, say >> supposing index is 11 >> #--------------------------- >> imageStr = listMsg[11].encode("ISO-8859-1") #Transform the byte string >> just the way I found it > > If your JPEG happens to contain the bytes \r\n, then this will not work. > Please follow our advice. Split using b'\r\n\r\n' and use the maxsplit=1 > argument to make sure that you do not split on spurious b'\r\n\r\n' sequences > inside the JPEG body. Do not decode the bytes. > > -- > Robert Kern > > "I have come to believe that the whole world is an enigma, a harmless enigma > that is made terrible by our own mad attempt to interpret it as though it had > an underlying truth." > -- Umberto Eco > > -- > http://mail.python.org/mailman/listinfo/python-list
Thanks Robert, My method worked too, I was able to do the above and save the jpeg flawlessly, but your method seems better as I will not have to take the extra step of encoding/decoding. -- http://mail.python.org/mailman/listinfo/python-list