2

Google App Engine から Google ドライブにファイルをアップロードしようとしています。2 つの異なる方法を試しましたが、両方で情報が失われます。

最初のものは次のものです:

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

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

この方法では、アップロードされたファイルの MIME タイプとタイトルも失われます。そして私は両方が必要です。

私はこれを別の方法で試しましたが、そのようなファイルは存在しないと常に言います:

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

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

助けてくれてありがとう!

4

1 に答える 1

1

メディアのアップロードとメタデータで MIME タイプを渡す必要はありません。メディアのアップロードだけに残します。

タイトル情報を失うことはありませんが、エラーを再現できません。

于 2012-12-26T20:35:07.197 に答える