2011-02-13 42 views
1

我正在嘗試使用Google文檔查看器。它似乎適用於PPT。例如這個作品:Google文件查看 - 網址編碼?

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

在我的應用程序我已經上傳私人安全文件。這似乎打破了谷歌文件或者我編碼錯了。

我發送給谷歌文檔查看器的URL是像這樣(樣本URL):

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

,打破谷歌文檔,它可以把它。我需要對此進行不同的編碼嗎?

謝謝!

+0

+1,有沒有人找到任何方式來查看簽名的S3網址嗎?編碼'&'到'%26'使文件「訪問被拒絕」... –

回答

0

您需要編碼至少符號(&)到%26

在任何一種語言,使用的是應該有一個URL編碼的功能。在php中是urlencode()。在JavaScript中,你會想要使用encodeURIComponent()

0

你不能。您的文件必須公開可供Google服務器查看並呈現。當我嘗試查看您發佈的網址時,它會給我「訪問被拒絕」。

想象一下,試圖在/Users/you/Desktop/mypowerpoint.ppt上查看計算機上的PPT。由於它不是可公開訪問的文件,因此您不希望任何人能夠查看它,更不用說Google的服務器了。 Google無法訪問http://docs.google.com/viewer?url=file:///Users/you/Desktop/mypowerpoint.ppt,就像無法訪問您的Access-Restricted頁面一樣。

但是,如果您提供的網址有一個訪問密鑰(我看到它是您的「示例網址」的一部分),它允許任何具有該訪問密鑰的人查看它,它應該可以正常工作,並且@Mike是正確的 - 您需要進行網址編碼,以免將亞馬遜的網址參數與Google文檔查看器的參數混淆。在這種情況下,如果你用Ruby on Rails的,你的問題建議的歷史工作,你要使用

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

我一開始就這麼想,但我認爲OP的意思是它不適合我們。 :( – Shaz

+0

剛剛在最後加入了一個最後一位:P –

0

那麼你可以做到這一點,如果你可以從產生的瞬間網址下載文件由s3 php庫。所有你做的是把谷歌url +編碼(即時生成的文件)。

如果鏈接未過期,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);