【发布时间】:2017-06-09 06:19:26
【问题描述】:
我创建了这个 html:
<!DOCTYPE html>
<html lang="en" xmlns:https="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>Upload Test</title>
</head>
<body>
<form action="http://localhost:8887/upload/" method="post">
<label class="btn btn-default btn-file">Browse
<input type="file" class="hidden"/>
</label>
<br>
<input class="btn btn-default" type="submit">
</form>
</body>
</html>
所以我正在尝试将数据从前端上传到后端。在后端我使用这个代码:
from flask import Flask
from flask import request
app = Flask(__name__)
@app.route('/upload/', methods=['POST', 'GET'])
def upload():
print(request.files)
return 'hey'
if __name__ == '__main__':
app.run('0.0.0.0', 8887)
print(request.files) 行的结果总是
ImmutableMultiDict([])
我不明白我的错误在哪里?
【问题讨论】:
-
上传文件不仅仅是一个常规请求。您是否查看过上传文件的文档? flask.pocoo.org/docs/0.12/patterns/fileuploads
-
@Craicerjack 是的,但有什么区别?如果我添加
enctype=multipart/form-data,它无论如何都不会工作。 -
将您的代码与文档中的代码进行比较,您会发现差异很大。还有一个用于文件上传的烧瓶插件 - pythonhosted.org/Flask-Uploads。除此之外,我看不出您认为是什么错误,文件上传不会打印出文件中的所有数据,因为它是文件而不是通常的数据。我认为它会打印出
ImmutableMultiDict([]),因为这就是它的存储方式