I\'m using tornado.web.stream_request_body
(tornado v4.0.1) to save post data but it seems like mime-type of the saved files remain as application/octet-strea
In stream_request_body mode you get the raw body as uploaded by the client, without the processing that creates self.request.arguments or self.request.files. This is a multipart/form-data wrapper (not the http headers, although they do look similar); you'll need to parse this to get the filename and the embedded data. I think the mime-related tools in the standard library's email package are probably the best way to parse this once you've gotten it saved to a file.