Javascript 如何使用Tornado从HTML5表单上传大文件>;4.1
我正在使用tornado 6.0.3创建一个应用程序,需要使用html表单上传大文件。如何流式处理文件,例如使用Javascript 如何使用Tornado从HTML5表单上传大文件>;4.1,javascript,html,python-3.6,tornado,large-file-upload,Javascript,Html,Python 3.6,Tornado,Large File Upload,我正在使用tornado 6.0.3创建一个应用程序,需要使用html表单上传大文件。如何流式处理文件,例如使用@stream\u request\u body装饰器来完成此操作 我创建了一个简单的表单,如下所示: <form action="{{ reverse_url('upload') }}" method="post" enctype="multipart/form-data"> {% module xsrf_form_html() %} <input cl
@stream\u request\u body
装饰器来完成此操作
我创建了一个简单的表单,如下所示:
<form action="{{ reverse_url('upload') }}" method="post" enctype="multipart/form-data">
{% module xsrf_form_html() %}
<input class="file" name="filesToUpload" id="filesToUpload" type="file" multiple/>
<input type="submit" name="submit" value="Upload File(s)"/>
</form>
这是可行的,但我需要能够处理巨大的文件,这样我就不能在内存中加载文件。因此,我尝试使用@stream\u request\u body
装饰器,并找到了(除其他外)解决方案,但在添加@stream\u request\u body
后,我得到了以下错误:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/tornado/web.py", line 1674, in _execute
self.check_xsrf_cookie()
File "/usr/local/lib/python3.6/dist-packages/tornado/web.py", line 1516, in check_xsrf_cookie
raise HTTPError(403, "'_xsrf' argument missing from POST")
tornado.web.HTTPError: HTTP 403: Forbidden ('_xsrf' argument missing from POST)
回溯(最近一次呼叫最后一次):
文件“/usr/local/lib/python3.6/dist-packages/tornado/web.py”,第1674行,在
self.check_xsrf_cookie()
文件“/usr/local/lib/python3.6/dist packages/tornado/web.py”,第1516行,在check_xsrf_cookie中
raise HTTPError(403,“\u xsrf”参数在POST中丢失”)
tornado.web.HTTPError:HTTP 403:禁止(POST中缺少“”xsrf“”参数)
然后,我发现我的tornado版本不支持流式多部分上传,因此我(因为我使用的是tornado 6.0.3版)需要将表单方法从POST更改为PUT,并通过HTTP头传递XSRF令牌。然而,html表单不支持PUT方法,因此我想我需要在某种程度上使用JavaScript来实现这一点,但我没有太多使用JavaScript,也没有找到任何关于如何实现这一点的帮助
因此,我的问题是: