python - 在 Flask 中将图像保存为错误文件(0 字节)
问题描述
当我使用烧瓶保存图像时,它保存为一个 0 字节的文件
from flask import Flask, render_template, redirect, request, url_for
from inference import predict_breed_transfer
import os
import io
from PIL import Image
from werkzeug.utils import secure_filename
UPLOAD_FOLDER = './static'
ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg'}
app = Flask(__name__)
app.config['SECRET_KEY'] = 'super secret key'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
def allowed_file(filename):
return '.' in filename and \
filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
@app.route('/')
def hello():
return render_template("index.html")
@app.route('/', methods = ['POST'])
def submit_data():
if request.method == 'POST':
file = request.files['file']
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
image = file.read()
predicted_breed = predict_breed_transfer(image_bytes = image)
imag = Image.open(io.BytesIO(image))
imag.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
result_dic = {
'im' : filename,
'breed' : predicted_breed
}
return render_template('index.html', dog=result_dic)
return render_template("index.html")
if __name__ == '__main__':
app.run()
请帮我解决一下这个。此外,为了您的帮助,该项目托管在https://dog-identification.herokuapp.com/
解决方案
保存之前写:
file.seek(0)
上面两行,你读取了文件,所以你应该先放光标然后保存!
推荐阅读
- boto3 - S3 恢复失败您提供的 XML 格式不正确
- google-apis-explorer - Google Drive REST API 将不同的结果集返回到他们的 Python 库
- perl - 我从远程服务器更改密码的代码不起作用
- sitefinity - 为什么 sitefinity 列表允许错误的页面 url 或允许分页?
- php - 如何将 ImageMagick 与 exec() 一起使用
- java - 从两个数组中查找最大元素
- solace - ISubscription 要在 ITopicEndpoint 的 CreateFlow 方法中传递
- java - 更好地记录杰克逊解析错误
- python - how to set row number with in sqlAlchemy
- windows - 无法在 Windows 上创建 reasonML 项目