@stream_request_body类StreamHandler(RequestHandler):定义post(self):self.temp_file.close()
def prepare(self):
max_buffer_size = 4 * 1024**3 # 4GB
self.request.connection.set_max_body_size(max_buffer_size)
self.temp_file = open("test.txt","w")
def data_received(self, chunk):
self.temp_file.write(chunk)
使用上面的代码,我可以上传原始数据形式的文件,如下所示
--6552719992117258671800152707 Content-Disposition:表单数据;name="dest“
csv --6552719992117258671800152707 Content-Disposition:表单-数据;name=“载体”
bandwidth --6552719992117258671800152707 Content-Disposition: form-data;name="file1";filename="test.csv“Content-Type:文本/csv
上传文件的内容如下。
如何从文件中获取解析出的请求参数,并对上传的文件进行数据分离?有没有其他方法可以在tornado中上传大文件(大约2 GB
发布于 2020-01-24 02:35:21
这是HTML表单使用的多部分协议。Tornado目前只能在一次看到所有数据的情况下才能解析它,而不是在流式上传中。有一个第三方库应该能够处理这个问题:https://github.com/siddhantgoel/streaming-form-data。有关更多信息,请参阅本期:https://github.com/tornadoweb/tornado/issues/1842
如果您控制客户端,那么使用普通的HTTP PUT而不是HTML multipart form协议可能会更简单。这不需要在服务器端进行任何特殊处理
https://stackoverflow.com/questions/59872661
复制相似问题