我正在尝试使用HTML将多个文件上传到我的flask应用程序中。我使用了下面的html表单。
<form action="url", method="POST", enctype="multipart/form-data">
<font size="2">
File2: <input type=file name=file1><br/>
File1: <input type=file name=file2><br/>
</font>
<input type="submit" value="Submit">
<input type="reset" value="Reset">
</form>
并且这些文件在Flask包中被读取为
@app.route('/process_data', methods=["POST"])
def process_data():
print request.files当我测试它时,我只上传了一个文件,这运行得很好,但是当我上传两个文件时,我可以看到request.files字段为空。
我不能从一个表单上载多个文件到flask?
发布于 2017-05-24 20:45:45
你必须使用,getlist
@app.route('/process_data', methods=["POST"])
def process_data():
uploaded_files = request.files.getlist("file[]")
print uploaded_files发布于 2017-05-24 20:46:19
实际上,request.files不是空的,它会是这样的ImmutableMultiDict:
ImmutableMultiDict([('file1', <FileStorage: 'test1.jpg' ('image/jpeg')>), ('file2', <FileStorage: 'test222.jpeg' ('image/jpeg')>)])您可以使用以下命令将其转换为字典:
dict(request.files)那么它将是:
{'file1': [<FileStorage: 'test1.jpg' ('image/jpeg')>], 'file2': [<FileStorage: 'test222.jpeg' ('image/jpeg')>]}然后,您可以从此处访问file1和file2。
如果你想上传多个文件,建议这个answer对你来说会更清楚,但你必须用以下命令更改你的html:
<input type="file" name="file[]" multiple="">https://stackoverflow.com/questions/44158365
复制相似问题