上传图片-谷歌应用程序引擎+;python

上传图片-谷歌应用程序引擎+;python,python,html,google-app-engine,webapp2,Python,Html,Google App Engine,Webapp2,我使用此链接作为上载图像的示例: 我的HTML代码: <form action="/upload_image" method="post" id="form1" runat="server"> <div class="fileButtons"> <input type='file' id="imgInp" name="imgInput" accept="image/*"/><br><br>

我使用此链接作为上载图像的示例:

我的HTML代码:

 <form action="/upload_image" method="post" id="form1" runat="server">
       <div class="fileButtons">
         <input type='file' id="imgInp" name="imgInput" accept="image/*"/><br><br>
         <input type='button' id='remove' value='Remove' />
        </div></form>
但当我添加图像时,什么都没有做,日志控制台也不会打印:

logging.debug("test")

关于日志语句未触发的问题:
dev_appserver.py
的默认日志级别为
info
,您可以使用
--dev_appserver\u log\u level
标志覆盖该级别

参考


要从多部分/表单数据POST请求访问上载的文件,请确保它们在
请求中可用。POST

建议使用以下方法将图像上载到GAE

以下是文档的快速分解,以帮助您实现这一快速目标:

进口:

import os
import urllib
import webapp2

from google.appengine.ext import blobstore
from google.appengine.ext.webapp import blobstore_handlers
以HTML的形式提供服务。此表单使用所选文件数据执行POST to GAE:

class MainHandler(webapp2.RequestHandler):
    def get(self):
        upload_url = blobstore.create_upload_url('/upload')
        self.response.out.write('<html><body>')
        self.response.out.write('<form action="%s" method="POST"
                enctype="multipart/form-data">' % upload_url)
        self.response.out.write("""Upload File: 
                <input type="file" name="file"><br> <input type="submit"
                name="submit" value="Submit"> </form></body></html>""")
添加处理程序以提供使用上述UploadHandler上载的图像:

class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler):
    def get(self, resource):
        resource = str(urllib.unquote(resource))
        blob_info = blobstore.BlobInfo.get(resource)
        self.send_blob(blob_info)
最后,定义应用程序的路由:

app = webapp2.WSGIApplication([('/', MainHandler),
                           ('/upload', UploadHandler),
                           ('/serve/([^/]+)?', ServeHandler)],
                            debug=True)

将enctype='multipart/form data'添加到表单中。此外,post除了为id和图像赋值外,似乎什么也没做。使用logging.info或简单打印
class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler):
    def get(self, resource):
        resource = str(urllib.unquote(resource))
        blob_info = blobstore.BlobInfo.get(resource)
        self.send_blob(blob_info)
app = webapp2.WSGIApplication([('/', MainHandler),
                           ('/upload', UploadHandler),
                           ('/serve/([^/]+)?', ServeHandler)],
                            debug=True)