我的烧瓶中有一个多重上传表单。
<form class="form-group" action="{{ url_for('load') }}" method="POST" enctype="multipart/form-data">
<input id="file-picker" type="file" name="file1"><br>
<input id="file-picker" type="file" name="file2"><br>
<input id="file-picker" type="file" name="file3"><br>
<input id="file-picker" type="file" name="file4"><br>
</form>
这就是我处理其中数据的方式:
@app.route("/load", methods=['GET', 'POST'])
def load():
if request.method == 'POST':
file = request.files.get("file1")
file_name = secure_filename(file.filename)
im = Image.open(file)
im.save(file_name)
upload(photo=file_name)
upload()
将图像从表单上传到s3。我不想使用request.getlist('files')
,因为这样以后检索它们会更容易。
在将上传的文件上传到 amazon s3 之前,我将其保存在静态文件夹中。如果我只想上传这 4 个文件中的 3 个,我会收到 IOError: [Errno 22]。
有什么办法可以忽略这个错误吗?即我可以设置为只上传一个/两个/三个文件,而不是每次都强制上传所有 4 个文件吗?
好吧,这就是我所做的……结果非常简单。感谢您的提示@furas
@app.route("/load", methods=['GET', 'POST'])
def load():
if request.method == 'POST':
files = request.files.getlist("file")
for file in files:
file.seek(0, os.SEEK_END)
if file.tell() == 0:
pass
else:
file_name = secure_filename(file.filename)
upload(p=file_name)