想要使用python将文件上传到google appengine中的目录

我是新的谷歌appengine。 我想上传文件到目录而不是存储为blob。

main.py

import cgi 
import webapp2
from google.appengine.api import users
from google.appengine.ext.webapp.template 
    import render
from os import path

class MainHandler(webapp2.RequestHandler):
    def get(self):
        context={}
        tmpl = path.join(path.dirname(__file__), 'static/html/index.html')
        self.response.out.write(render(tmpl, context))

    def post(self):
       form_data = self.request.get('file')
       file_data = form_data
       f=open('static/html/'+form_data,'w')
       f.write(file_data)
       f.close



routes=[
        (r'/', MainHandler),
        ]   
app = webapp2.WSGIApplication(routes=routes,debug=True)

的index.html

> <html>
>     <head><title>test</title></head>
>     <body>hello
>        <form id="addmovieform" action="/" method="post" ENCTYPE="multipart/form-data">
>            <input type="file" name="file" >
>            <input type="submit" name="submit">
>        </form>
>     </body>
>         </html>

错误

追溯(最近一次调用最后): 调用 rv = self的文件“/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2/webapp2.py”,第1536行.handle_exception(request,response,e)文件“/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2/webapp2.py”,第1530行, 致电 rv = self.router.dispatch(request,response)文件“/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2/webapp2.py”,第1278行,在default_dispatcher中返回route.handler_adapter(请求,响应)在调用返回处理程序中的文件“/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2/webapp2.py”,行1102。 dispatch()File“/Applications/GoogleAppEngineLauncher.app/Contents/Resources/Goog leAppEngine-default.bundle / Contents / Resources / google_appengine / lib / webapp2 / webapp2.py“,第572行,在调度中返回self.handle_exception(e,self.app.debug)文件”/Applications/GoogleAppEngineLauncher.app/Contents/参考资料/ GoogleAppEngine-default.bundle / Contents / Resources / google_appengine / lib / webapp2 / webapp2.py“,第570行,发送返回方法(* args,** kwargs)File”/Users/saravase/test/main.py “,第33行,在post f = open('static / html /'+ form_data,'w')File”/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google /appengine/tools/dev_appserver_import_hook.py“,第589行,在init中引发IOError('invalid mode:%s'%mode)IOError:invalid mode:w

请指导我...


从“什么是Google App Engine?”

应用程序无法在任何运行时环境中写入文件系统。 应用程序可以读取文件,但只能读取使用应用程序代码上传的文件。 应用程序必须使用App Engine数据存储区,memcache或其他服务来处理请求之间存在的所有数据。 Python 2.7环境允许读取,写入和修改字节码。

您需要返回使用blobstore,或者尝试Google Cloud Storage API,具体取决于您的应用程序的需求。

链接地址: http://www.djcxy.com/p/88693.html

上一篇: Want to upload a file to directory in google appengine using python

下一篇: test function with Google App Engine `files` api