這裏是的情況:python使用海報POST一個StringIO
我使用PIL處理圖像,然後我將它保存到一個StringIO對象。 現在,我想通過海報POST StringIO對象。 但是,我無法得到request.FILES字典中的圖像。 我GOOGLE了幾個小時,我發現這個問題, python : post data within stringIO through poster? 我試過,但沒有工作。
因此,我閱讀海報源代碼,發現它試圖獲得文件類對象參數的'名稱'屬性,但它好像是StringIO對象沒有'名稱'屬性,所以,文件名和文件類型是無
if hasattr(value, 'read'):
# Looks like a file object
filename = getattr(value, 'name', None)
if filename is not None:
filetype = mimetypes.guess_type(filename)[0]
else:
filetype = None
retval.append(cls(name=name, filename=filename,
filetype=filetype, fileobj=value))
else:
retval.append(cls(name, value))
因此,我指定了StringIO對象的名稱歸屬,它似乎工作正常。
im_tmp = Image.open(StringIO(bits))
//bits: the binary chars of a image
im_res = ImageAPI.process(im_tmp, mode, width, height)
//ImageAPI: a class that use PIL methods to process image
output = StringIO()
im_res.save(output, format='PNG')
output.name = 'tmp.png'
//I add above code and it works
call(url_str=url, file_dict={'file':output})
//call: package of poster
我做對了嗎?通過海報發佈一個StringIO對象的正確方法是什麼?
謝謝,但該項目正在使用海報,我無法更改結構。 – Jinvan