2012-04-12 44 views
0

也許我很笨拙,或者誤解了WAMP限制或瀏覽器限制,但我已經使用scandir函數遞歸地使用Ajax創建了一個PHP文件瀏覽器視圖,並且它很適合顯示文件來自我們的網絡共享(\ computername \ share)。PHP scandir資源管理器視圖通過WAMP顯示網絡共享文件(文件://)。在本地主機上工作,但不能通過IP地址

我可以在訪問http://localhost時啓動文件,但是如果從同一本地主機訪問http:// [our_external_ip_address],則文件不會打開。狀態欄中的路徑在兩者上顯示相同(例如file://computername/share/filename.zip)。我最終希望將這些文件放在與我們的Web主機相同的域中的網絡共享上。

請幫忙。我相當能夠勝任PHP & JS,但是當涉及到網絡主機等時,我被塞滿了。 TIA。

詹姆斯

+0

我會說,最好的辦法在這裏將創建一個文件 - 使用PHP讀取代理,以便所有鏈接都是'http://',而PHP'readfile()是訪問它們時的文件。它會更可靠,更便攜。有沒有理由不能/不想這樣做? – DaveRandom 2012-04-12 11:27:32

+0

也許我誇大了當我說相當能勝任PHP :)我沒有使用readfile,但我已經發布了下載文件與圖像的對象緩衝區。我熱衷於使用集成瀏覽器功能打開PDF文件,但更好的是預覽插件顯示類似於圖像滑塊jquery插件的PDF和Word文件。 – 2012-04-12 11:45:24

+0

我已成功地通過使用右鍵單擊保存目標作爲外部用戶和內部用戶能夠訪問跨域下載的成功有限。但是,單擊以在新選項卡中打開不起作用。 – 2012-04-12 11:48:39

回答

1

海量感謝DaveRandom - 這個解決方案工作,以允許PDF /字/從UNC路徑Zip文件從外部Web客戶端啓動。

FILE 1: - 的index.php

<?php 
    $filename= *** insert UNC path to file *** // e.g. \\share\computername\New Document.doc 
    $extension= pathinfo($filename, PATHINFO_EXTENSION); // Gets extension for file 
    $displayFilename= *** insert shorten filename *** // e.g. New Document.doc 
?> 


<a href="filehandler.php?name=<?php echo $filename; ?>&ext=<?php echo $extension; ?>&shortname=<?php echo $displayFilename; ?>"><?php echo $displayFilename; ?></a> 

FILE 2: - filehandler.php

<?php 
$filename = $_GET['name']; 
$extension = $_GET['ext']; 
$shortfilename = $_GET['shortname']; 
if ($extension == "pdf") 
{ 
    header("Content-type: application/pdf"); // act as a pdf file to browser 
} 
if ($extension == "doc") 
{ 
    header("Content-type: application/msword"); // act as a doc file to browser 
} 
if ($extension == "zip") 
{ 
    header("Content-type: application/zip"); // act as a zip file to browser 
} 
header("Content-Disposition: inline; filename='$shortfilename'"); 

$file = readfile($filename); 
echo $file; 
?> 
相關問題