2012-12-26 153 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