2012-12-26 106 views
2

我试图从谷歌应用程序引擎上传文件到谷歌驱动器。 我已经尝试了2种不同的方式,但是我在两者中都失去了信息。从appengine上传文件到谷歌驱动器(python)

第一个是下一个:

-The HTML表单:

<html><body><form id='myForm' method='post' action='/guardar' 
    enctype='multipart/form-data' > 
<input type="file" id="doc" name="doc" > 
<input type="submit" value="Enviar"></form> 
</body></html> 

-The Python代码:

class guardar(webapp.RequestHandler): 

    @decorator.oauth_required 

    def post(self):  

    http = decorator.http() 

    service = build('drive', 'v2', http=http) 

    thefile = self.request.get('doc') 

    media_body = MediaInMemoryUpload(thefile, mimetype='text/plain', resumable=True) 

    response = service.files().insert(body={'title': 'prueba_si','mimeType': 'text/plain'},media_body=media_body).execute() 

这样,我失去了上传文件的媒体类型和标题也;我需要两个。

我曾尝试其他办法,但它总是说,这些文件不存在:

-The HTML文件:

<html><body><form id='myForm' method='post' action='/guardar' > 
<input type="file" id="doc" name="doc" > 

<input type="submit" value="Enviar"></form> 

</body></html> 

-The Python代码:

class guardar(webapp.RequestHandler): 

    @decorator.oauth_required 

    def post(self):  

    http = decorator.http() 

    service = build('drive', 'v2', http=http) 

    thefile = self.request.get('doc') 

    mime_type=mimetypes.guess_type(thefile,strict=True) 
    media_body = MediaFileUpload(filename, mimetype=mime_type, resumable=True) 
    response = service.files().insert(body={'title': 'prueba_si','mimeType': mime_type},media_body=media_body).execute() 

谢谢很多帮助!

回答

1

您不需要在媒体上传和元数据中传递MIME类型。我会把它留在媒体上传中。

你不应该失去标题信息,但我不能重现你的错误。

+0

是的,这是真的,只有一个就足够了。如果我有扩展名的标题,我不需要把它放在一起,但我没有看到错误。 无论如何谢谢你! – user1930068