2013-02-06 38 views
3

我將PDF文檔存儲在服務器的共享文件夾中,我需要通過文件瀏覽從Web應用程序訪問它們。我知道存儲在那裏的文件的名稱。所以我的鏈接就像(文件:\\ server \ folder \ abc.pdf)。使用php訪問來自不同域的文件

我的php應用程序在xampp上運行的Web服務器上。但共享文件夾位於不同的域中。 (不在Web服務器文件夾 - 普通文件夾中)。當我嘗試訪問文件時,它顯示「找不到文件:\\ server \ folder \ abc.pdf。確保路徑或Internet地址是正確的」。

<a href="file:\\server\folder\abc.pdf" >Load File</a> 

<?php 
echo $dir = '\\\\server\\folder\\'; 

$dh = opendir($dir); 

while (($file = readdir($dh)) !== false) { 
echo "<a href=".$dir.$file.">".$file."<br></a>"; 
} 

closedir($dh); 

?> 

當我它提示該文件夾的用戶名和密碼,因爲它是在不同域的地址欄上鍵入「\\服務器\文件夾」(我現在的域名已經被驗證在我的符號) 。當我爲該文件夾提供Windows身份驗證時,我的Web應用程序URL將正常工作併成功打開文件。

我想在不提示目錄安全用戶名和密碼的情況下完成此任務。我的Web應用程序將被許多用戶使用,因此網絡驅動器的本地映射也不可行。

任何人都可以幫助我嗎?

+0

試圖更改共享文件夾的公共(無需任何身份驗證),然後再試一次,也都大幅削減應該被轉義像(\\\\服務器\\ \\文件夾) – 2013-02-06 07:36:53

+0

感謝阿卡姆了迅速的反應,但是,由於安全目的,我無法將文件夾公開。 – Guns

+1

檢查此[鏈接](http://stackoverflow.com/questions/1444976/accessing-a-windows-share-using-php) – 2013-02-06 07:49:41

回答

1

得到的答案

我們可以映射網絡驅動器到服務器並保存其在「映射網絡驅動器」嚮導提示輸入用戶名和密碼,然後就可以正常使用映射的網絡嚮導。

下面是爲我工作的代碼。

$dir = "A:/folder/"; 
$dh = opendir($dir); 
while (($file = readdir($dh)) !== false) 
{ 
echo 'The file is : ' . $file . "\n"; 
} 
closedir($dh); 
+0

什麼是一種很好的方法來繞過安全!您似乎忘記了哪些身份驗證部件屬於php/web-server以及屬於哪個用戶。請告知自己您的問題和解決方案對安全性的影響 – Oerd