我使用Google查看器在網頁上顯示pdf。在google查看器中隱藏pdf源
http://docs.google.com/viewer?url=http%3A%2F%2Fresearch.google.com%2Farchive%2Fbigtable-osdi06.pdf
我的客戶想要隱藏的網址即源。如果查看源代碼HTML頁面,它顯示了文件的路徑。
請幫助我,是否有任何方式通過PHP或任何其他想法通過URL?
我使用Google查看器在網頁上顯示pdf。在google查看器中隱藏pdf源
http://docs.google.com/viewer?url=http%3A%2F%2Fresearch.google.com%2Farchive%2Fbigtable-osdi06.pdf
我的客戶想要隱藏的網址即源。如果查看源代碼HTML頁面,它顯示了文件的路徑。
請幫助我,是否有任何方式通過PHP或任何其他想法通過URL?
除非您創建自己的PDF查看器,該查看器支持某種隱藏的PDF身份或URI傳遞。谷歌的查看器讓你無論如何保存原始PDF在文件菜單下。我不知道你的客戶關心或想要隱藏什麼。
您可以做的一件事是使用不同的URL傳遞PDF,但前提是請求來自docs.google.com。
所以你有一個網站,例如www.mypdfserver.com以及有人呼叫PDF時,請檢查該請求是否來自docs.google.com。如果是這樣,您可以重定向到原始網址。如果不是,你什麼都不用。
1)這很容易欺騙和2)我真的不認爲這個請求會來自網絡瀏覽器,而是來自後端谷歌服務器,這意味着它可能贏得沒有任何引用者。不確定Google Viewer的工作原理。 – deceze
ad 1)真實 - 但你會怎麼做?恕我直言,請求在這個意義上是有缺陷的。廣告2)Google服務器肯定有一個IP範圍,您可以檢查。在這種情況下,您將使用$ _SERVER ['REMOTE_ADDR']而不是HTTP_REFERER。 – user1914292
夠公平的。這仍然意味着用戶可以通過查看器本身的菜單項*查看源代碼中的URL甚至獲取PDF。您只能禁用某人檢查源代碼並嘗試直接從源代碼下載PDF的情況。它既不隱藏URL也不隱藏PDF。這值得嗎? :) – deceze
由於谷歌查看器將所有頁面轉換爲圖像,所有你需要做的就是用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;
*/
?>
在這種情況下谷歌簡直是另一個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。
您可以使用您的服務器將PDF「代理」給Google查看器,以便「隱藏原始來源」。但正如欺騙指出的那樣,人們無論如何都可以保存PDF。 – Passerby
@Passerby如果URL本身嵌入在HTML本身中,代理將很難提供幫助。 – deceze
@deceze OP有一個服務器,我假設他可以控制它上面的網頁,所以他可以將每個PDF鏈接改爲「http://site.com/pdf/?id = 12345」。 – Passerby