2012-07-25 126 views
1

最近我將Google Drive與我的iOS應用程序集成在一起。一切工作正常,但.ppt文件。通常,如果文件是Drive文件,我使用downloadURL來下載它。如果該文件屬於Google文檔,則使用其中一個導出鏈接(與阿蘭描述的here完全相同)。已下載的ppt文件似乎已損壞

但是,所有來自Google文檔的.ppt文件(包含"mimeType": "application/vnd.google-apps.presentation")在下載後都會損壞(我使用導出鏈接exportFormat=pptx)。通過網絡瀏覽器下載的相同文件工作正常。 我使用ASIHTTPRequest lib來下載文件(這也可能是損壞的.ppt?的原因)。

任何想法爲什麼只有ppt文件導致問題?

+0

導出的實際文件應該是「pptx」,而不是「ppt」,您能證實這一點嗎? – 2012-07-25 18:45:49

+0

是的,我確認。所以即使是我的文件名是presentation.ppt(在Google Docs中),下載後它的名字就變成了presentation.ppt.pptx – lechec 2012-07-25 19:55:55

回答

2

我已經可以告訴你,你正在使用的庫不是原因:我沒有使用它,但我有同樣的問題:它似乎收到代碼不是200(如果( $ httpRequest-> getResponseHttpCode()== 200)),因爲它向我展示了一個特定的錯誤消息,我要求在返回的情況下返回。另外,當我嘗試以PDF或txt格式下載演示文稿時,它會顯示相同的錯誤。

這不是一個真正的答案,但我想了解爲什麼只有演示文稿導致問題。

編輯:收到的代碼是。如果它可以幫助... 編輯2:嘗試後,我注意到,第一個參數是文件名和第二導出格式:

https://docs.google.com/feeds/download/presentations/Export?docId=filedid&exportFormat=pptx 

但在302碼,我有這樣的位置:

https://docs.google.com/feeds/download/presentations/Export?exportFormat=pptx&id=fileid 

不僅兩個參數是不是在同一個命令,但名字是ID,而不是DOCID

當我把這個URL,把它作爲導出鏈接,然後嘗試複製文件,它的工作。我得到一個200響應和文件的內部。

我希望它有幫助。

+0

當我用id替換docId它開始工作。參數的順序無關緊要。 我不得不作出這個替換隻爲出口鏈接以exportFormat = pptx – lechec 2012-07-27 19:45:37

+0

結尾是的,我知道,這就是爲什麼我認爲它不是一個秩序問題後,用粗體的名稱的差異(但我讓雖然觀察)。很高興看到它也適合你。 – vicrabb 2012-07-28 05:40:13