Python Flask webapp从移动图像库上载照片
我有一个烧瓶应用程序,用户可以上传照片到谷歌云存储。选择拍照时,此过程在PC上也可以在手机上正常工作,但从手机图像库上载时,文件不会上载。请帮忙Python Flask webapp从移动图像库上载照片,python,google-app-engine,flask,google-cloud-storage,camera-roll,Python,Google App Engine,Flask,Google Cloud Storage,Camera Roll,我有一个烧瓶应用程序,用户可以上传照片到谷歌云存储。选择拍照时,此过程在PC上也可以在手机上正常工作,但从手机图像库上载时,文件不会上载。请帮忙 class Image(db.Model): id = db.Column(db.Integer, primary_key=True) location = db.Column(db.String(50), unique=True, nullable=False) class ImageForm(FlaskForm): pho
class Image(db.Model):
id = db.Column(db.Integer, primary_key=True)
location = db.Column(db.String(50), unique=True, nullable=False)
class ImageForm(FlaskForm):
photo = FileField('Add Main Photo', validators=[FileRequired(), FileAllowed(['jpg'])])
submit = SubmitField('confirm')
def save_picture(form_picture,name):
picture_path = os.path.join(app.config['UPLOAD_FOLDER'], name)
output_size = (1000,1000)
i = Image.open(form_picture)
i.thumbnail(output_size)
i.save(picture_path)
storage_client = storage.Client()
bucket = storage_client.get_bucket(app.config['BUCKET'])
blob = bucket.blob(name)
blob.upload_from_filename(picture_path)
return picture_path
@app.route('/testupload', methods=['GET', 'POST'])
def testupload():
form = ImageForm()
if form.validate_on_submit():
name = 'ID'+uuid.uuid4().hex[:6]
filename = secure_filename(name+'.jpg')
try:
save_picture(form.photo.data, filename)
db.session.add(Image(location=filename))
db.session.commit()
return redirect(url_for('post'))
except:
flash("unsuccess")
return redirect(url_for('testupload'))
else:
return render_template("home.html")
HTML文件
{% extends"layout.html" %}
{% block content %}
<form method="POST" enctype="multipart/form-data">
{{ form.hidden_tag() }}
<div>
{{ form.photo }}
{{ form.submit }}
</div>
</form>
你需要描述一下“从相机卷上传”是什么意思(我已经长大了,这对我来说意味着其他的东西),并提供更多关于“文件未上传”(错误、日志等)部分的信息。我指的是当你用手机拍摄照片时手机上的照片存储。问题是,单击form.photo按钮时,您可以浏览文件、从照片库中选择或拍照。如果你拍一张照片。已成功上载图像,但如果选择从照片库中选择,则不会上载图像。在我的情况下,它只是闪烁着“不成功”。嘿@pie,你能提供更多信息让我帮你吗?比如:检查你的谷歌云平台,并提供与此问题相关的日志。此外,请检查您的帐户,如果存在,请向我提供回溯。之后,我会很乐意帮助你。谢谢@methkalkalawi我已经更新了日志。没有错误报告。您添加的请求日志是在
/merchant/product
路径中创建的,而不是在/testupload
路径中创建的。要么它不是正确的请求日志,要么请求实际上没有发送到正确的路径,这可以解释为什么没有上传。
{
httpRequest: {
status: 200
}
insertId: "5de1ee060003f11d3a306ad9"
labels: {
clone_id: "00c61b117cca6752114064486c70db1c3a067b99d2572773a7df9823648617d70ed3a884ba"
}
logName: "projects/myproject-535/logs/appengine.googleapis.com%2Frequest_log"
operation: {
first: true
id: "5de1ee0600ff013f532e7d0e5800016e7e6d7970726f6a6563742d3533350001323031393131323974313434393033000100"
last: true
producer: "appengine.googleapis.com/request_id"
}
protoPayload: {
@type: "type.googleapis.com/google.appengine.logging.v1.RequestLog"
appEngineRelease: "1.9.71"
appId: "n~myproject-535"
cost: 4.01772e-7
endTime: "2019-11-30T04:20:22.258180Z"
finished: true
first: true
host: "onedaystory.co"
httpVersion: "HTTP/1.1"
instanceId: "00c61b117cca6752114064486c70db1c3a067b99d2572773a7df9823648617d70ed3a884ba"
instanceIndex: -1
ip: "2001:44c8:414e:90d5:e88c:6707:ae22:ba7f"
latency: "0.176433s"
megaCycles: "66"
method: "POST"
referrer: "http://onedaystory.co/merchant/product"
requestId: "5de1ee0600ff013f532e7d0e5800016e7e6d7970726f6a6563742d3533350001323031393131323974313434393033000100"
resource: "/merchant/product"
responseSize: "3595"
startTime: "2019-11-30T04:20:22.081747Z"
status: 200
traceId: "e873978d627836a53b005b9cc3f2067e"
traceSampled: true
urlMapEntry: "auto"
userAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Mobile/15E148 Safari/604.1"
versionId: "20191129t144903"
}
receiveTimestamp: "2019-11-30T04:20:22.271160187Z"
resource: {
labels: {
module_id: "default"
project_id: "myproject-535"
version_id: "20191129t144903"
zone: "asia-east2-2"
}
type: "gae_app"
}
timestamp: "2019-11-30T04:20:22.081747Z"
trace: "projects/myproject-535/traces/e873978d627836a53b005b9cc3f2067e"
traceSampled: true
}