从appengine(python)上传文件到谷歌驱动器

时间:2012-12-26 15:06:57

标签: google-app-engine google-drive-api

我正在尝试从谷歌应用引擎上传文件到谷歌驱动器。 我尝试了两种不同的方式,但我在两者中都失去了信息。

第一个是下一个:

-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()

这样我也失去了上传文件的mimetype和标题;我需要两个。

我尝试过这种方式,但总是说这样的文件不存在:

-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 个答案:

答案 0 :(得分:1)

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

您不应丢失标题信息,但我无法重现您的错误。