我正在为我的Flask网站建立一个图库,在CMS中生成缩略图时遇到问题。我有一个函数,可以获取上传的图像(存储在列表中),复制列表,并使用zip()
遍历这两个列表。我用一个列表制作缩略图,用另一个列表上传完整图像,并将两者发送到AWS S3。问题是,我确实制作了缩略图,但是完整的图像被上传为大小为0字节的图像。我也有一个功能,重命名的图像。这是可行的,所以我认为我做的事情是正确的
为什么我要获取0字节的文件?这是怎么发生的?什么是“清空”文件
@application.route("/upload", methods=['GET', 'POST'])
@login_required
def upload():
form = UploadForm()
uploaded_files = request.files.getlist("photo")
conn = boto3.client(
's3',
region_name="region",
aws_access_key_id='aws_access_key_id',
aws_secret_access_key='aws_secret_access_key'
)
bucket_name = "bucket"
if form.validate_on_submit():
i = 1
thumbs_list = list(uploaded_files)
for z, w in zip(thumbs_list, uploaded_files):
x = photo_rename(w)
thumb = save_thumbnail(z)
conn.upload_fileobj(x.stream, bucket_name, 'gallery/fulls/'+w.filename)
conn.upload_fileobj(thumb, bucket_name, 'gallery/thumbs/'+w.filename)
form_commit = Gallery(event=form.event.data,
date=form.date.data,
image_order=i,
image_file_fl=w.filename,
image_file_th=w.filename
)
db.session.add(form_commit)
i += 1
db.session.commit()
return '', 204
我在我的
for loop
中使用io.BytesIO()
可以让两个上传都正常工作:相关问题 更多 >
编程相关推荐