我正在尝试使用Google文档查看器。它似乎适用于PPT。这个例子有效:
在我的应用中,为了安全起见,我将文件上传为私有。这似乎打破了Google文档或者我编码错误。
我发送给Google文档查看器的网址是这样的(示例网址):
这打破了谷歌文档,它可以采取它。我需要以不同的方式编码吗?
谢谢!
答案 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);