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

Reply via email to