我想把一些图像数据发送到Twisted的文件发送程序。如果我使用一个临时文件来保存图像,一切正常
#works
img = Image(format='png', blob=base64.decodestring(dt))
img.save(filename='/tmp/tmp.png')
file = open('/tmp/tmp.png','rb')
filesender = FileSender().beginFileTransfer(file, request)
def fileFinished(ignored):
request.finish()
filesender.addCallback(fileFinished)
不过,我想做的是在内存中而不是在文件中这样做。我尝试过使用StringIO来实现这一点,但是FileSender似乎只发送了几个字节就放弃了。我做错什么了?在
^{pr2}$
当您尝试发送时,
StringIO
被定位在EOF。令人惊讶的是,它甚至发送了几个字节(我怀疑它没有发送,而您看到的只是HTTP帧)。在调用beginFileTransfer
之前,请尝试查找开头。在另外,您不需要在这里使用
FileSender
。你的数据已经完全在内存中了。FileSender
实际上可能会增加发送它的成本。相反,您可以考虑更简单的方法:相关问题 更多 >
编程相关推荐