2013-04-17 87 views
-1

我使用Google查看器在網頁上顯示pdf。在google查看器中隱藏pdf源

http://docs.google.com/viewer?url=http%3A%2F%2Fresearch.google.com%2Farchive%2Fbigtable-osdi06.pdf

我的客戶想要隱藏的網址即源。如果查看源代碼HTML頁面,它顯示了文件的路徑。

請幫助我,是否有任何方式通過PHP或任何其他想法通過URL?

+0

您可以使用您的服務器將PDF「代理」給Google查看器,以便「隱藏原始來源」。但正如欺騙指出的那樣,人們無論如何都可以保存PDF。 – Passerby

+0

@Passerby如果URL本身嵌入在HTML本身中,代理將很難提供幫助。 – deceze

+0

@deceze OP有一個服務器,我假設他可以控制它上面的網頁,所以他可以將每個PDF鏈接改爲「http://site.com/pdf/?id = 12345」。 – Passerby

回答

3

除非您創建自己的PDF查看器,該查看器支持某種隱藏的PDF身份或URI傳遞。谷歌的查看器讓你無論如何保存原始PDF在文件菜單下。我不知道你的客戶關心或想要隱藏什麼。

1

您可以做的一件事是使用不同的URL傳遞PDF,但前提是請求來自docs.google.com。

所以你有一個網站,例如www.mypdfserver.com以及有人呼叫PDF時,請檢查該請求是否來自docs.google.com。如果是這樣,您可以重定向到原始網址。如果不是,你什麼都不用。

+0

1)這很容易欺騙和2)我真的不認爲這個請求會來自網絡瀏覽器,而是來自後端谷歌服務器,這意味着它可能贏得沒有任何引用者。不確定Google Viewer的工作原理。 – deceze

+0

ad 1)真實 - 但你會怎麼做?恕我直言,請求在這個意義上是有缺陷的。廣告2)Google服務器肯定有一個IP範圍,您可以檢查。在這種情況下,您將使用$ _SERVER ['REMOTE_ADDR']而不是HTTP_REFERER。 – user1914292

+0

夠公平的。這仍然意味着用戶可以通過查看器本身的菜單項*查看源代碼中的URL甚至獲取PDF。您只能禁用某人檢查源代碼並嘗試直接從源代碼下載PDF的情況。它既不隱藏URL也不隱藏PDF。這值得嗎? :) – deceze

2

由於谷歌查看器將所有頁面轉換爲圖像,所有你需要做的就是用PHP獲取圖像,然後用/顯示它們,但是你想顯示它們。無論是滑塊還是隻包含所有頁面的表格。但我懷疑這可能是對TOS的違反。

下面是一些示例代碼:

<?php 
//Share the document first so it's saved then its id won't be changed making it alot easier for us to get the images, make sure its public aswell 
$url = 'https://docs.google.com/file/d/someweirdid/edit?usp=sharing';//the url for the file 
$urlexp = explode('/', $url); 
end($urlexp); 
$id = prev($urlexp); 
//here you cant print the image as is or read it with php and use your own domain to output it 
$image = "https://docs.google.com/file/d/".$id."/image?pagenumber=1&w=800"; 
echo "<img src='".$image."' />"; 
/* Code to print it on ur own domain as your own 
$im = file_get_contents($image); 
header("Content-type: image/jpeg"); 
echo $im; 
*/ 
?> 
2

在這種情況下谷歌簡直是另一個Web用戶訪問您的公用PDF。

以防止對PDF的網址直接訪問的唯一的選擇是有,要麼使用後的具體數量或時間

如過期的臨時網址。

使用PHP來生成一個唯一的URL到PDF

http://example.com/pdfs/importantpdf.pdf?id=2342oiuqer23413;ja;sekfj;kjewr 

只有從服務器返回的PDF如果ID是正確的,仍然計數或可用時間。這樣您就不需要在服務器上公開實際的文件名,但是如果需要,可以提供pdf。如果谷歌正在請求它,你也可以嘗試只返回pdf,但這可能是不平凡的和容易出錯的。

但正如其他人指出的那樣,Google pdf查看器(實際上是任何pdf查看器)將允許您保存pdf。