Python Flask webapp从移动图像库上载照片

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

我有一个烧瓶应用程序,用户可以上传照片到谷歌云存储。选择拍照时,此过程在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):
    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  
}