Google文档视图 - 网址编码?

时间:2011-02-13 19:48:38

标签: html url encoding google-docs

我正在尝试使用Google文档查看器。它似乎适用于PPT。这个例子有效:

http://docs.google.com/viewer?url=http://www.microsoft.com/presspass/download/press/2008/02-01yahoo.ppt

在我的应用中,为了安全起见,我将文件上传为私有。这似乎打破了Google文档或者我编码错误。

我发送给Google文档查看器的网址是这样的(示例网址):

https://s3.amazonaws.com/dev/1/attachments/243/1/original/02-01yahoo.ppt?AWSAccessKeyId=17VVCSSS3H6Y3129H3G2&Expires=1294131584&Signature=3141havYNS7JCpsTLE6Ppo3yXkc%3D

这打破了谷歌文档,它可以采取它。我需要以不同的方式编码吗?

谢谢!

3 个答案:

答案 0 :(得分:0)

您需要至少将&符号(&)编码为%26

无论您使用何种语言,都应该有一个url编码功能。在php中它是urlencode()。在javascript中,您需要使用encodeURIComponent()

答案 1 :(得分:0)

你做不到。您的文档必须可供Google服务器公开访问,以便查看和呈现它们。当我尝试查看您发布的网址时,它会向我显示“拒绝访问。”

想象一下,尝试在/Users/you/Desktop/mypowerpoint.ppt上查看计算机上的powerpoint。由于它不是可公开访问的文件,因此您不会指望任何人能够查看它,更不用说Google的服务器了。 Google无法访问http://docs.google.com/viewer?url=file:///Users/you/Desktop/mypowerpoint.ppt,就像它无法访问您的访问受限页面一样。

但是,如果你提供的URL有一个访问密钥(我看到它是你的“示例网址”的一部分),它允许任何拥有该访问密钥的人查看它,它应该可以工作,而@Mike是对的 - - 您需要对其进行URL编码,以免将Amazon的URL参数与Google Docs Viewer的参数混淆。在这种情况下,如果您正在使用Ruby on Rails,这是您的问题建议的历史,那么您将要使用

<%=u "http://www.yoururl.com/?someparameter=true&file=myfile.ppt" %>

答案 2 :(得分:0)

如果你可以从s3 php库生成的即时网址下载文件,你可以这样做。你所要做的就是把google url + encoded(即时生成的文件)。

如果链接未过期,Google视图将能够读取它。

就是这样

$generated_file = $obj->gs_prepareS3URL($file); 
$encoded_url = rawurlencode($generated_file);
$google_docs = "http://docs.google.com/viewer?url=";
redirect($google_docs.$encoded_url);