在python龍捲風服務器中,我從客戶端的請求中獲得了一個視頻文件(如:test.mp4)。而文件的類型是'tornado.httputil.HTTPFile'。如何在python服務器中保存<httpfile>視頻
我想將它保存到我的服務器,如'./video/myvideo.mp4'。 我知道opencv videoCapture可能會這樣做,但沒有很好地使用這些API。
在python龍捲風服務器中,我從客戶端的請求中獲得了一個視頻文件(如:test.mp4)。而文件的類型是'tornado.httputil.HTTPFile'。如何在python服務器中保存<httpfile>視頻
我想將它保存到我的服務器,如'./video/myvideo.mp4'。 我知道opencv videoCapture可能會這樣做,但沒有很好地使用這些API。
您可以通過使用保存文件Python的內置open()
功能,如:
with open('myfile.txt', 'w') as f:
f.write('Hello world')
一個簡單的龍捲風例如:
class UploadHandler(tornado.web.RequestHandler):
# ...
def post(self):
for field_name, files in self.request.files.items():
for info in files:
filename = info['filename']# name of the file
body = info['body'] # contents of the file
with open('video/%s' % filename, 'w') as f:
f.write(body)
self.write('Upload successful')
注:如果上傳的文件很大,可能會遇到一些問題。閱讀 - issue on GitHub。但是,您可以使用裝飾器來繞過這個問題,雖然我沒有任何經驗,也沒有工作代碼示例。
請注意文件名。如果'info ['filename']'包含特殊字符(如'../'),打開文件可能無法做到你想要的,這是一個很大的安全風險。生成自己的文件名總是比信任客戶給你的文件名更好。 –
您應該嘗試解釋什麼是錯誤的,什麼不適合您的解決方案,甚至可能會放入一段代碼。這可能有助於人們給你一個答案。 – api55