2012-07-25 125 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