我正在尝试使用 HTML5<input type="file"/>
将文件上传到运行 Flask 的服务器。
有一篇不错的文章解释了如何做到这一点。但是,它建议使用以下方法获取已发送到服务器的数据:
PHP: $_SERVER['HTTP_X_FILE_NAME'] Rails:request.env['HTTP_X_FILE_NAME'] Django:request.META['HTTP_X_FILE_NAME']
不幸的是,我不知道 Flask 中上述内容的等价物。根据我的阅读,我尝试过:
- 请求数据
- request.stream.read()
- request.input_stream.read()
- request.input_stream.read(request.headers.get('content-type', type=int) or 0)
不幸的是,似乎没有一个按预期工作。
我正在使用 Chrome 上传文件:
var xhr = new XMLHttpRequest();
xhr.open('POST', '/upload/uri', true);
xhr.send(file);
在 Chrome 中,在我启动传输后,在开发人员工具中此给定 POST 的网络传输标题Content-Length
下,设置为正在上传的文件的大小 - 这表明文件实际上正在发送。
我想知道如何访问在 Flask 中发送的文件,或者人们可能更喜欢如何将 HTML5 文件发送到服务器。