2010-07-21 53 views
-1

我正在製作一個小應用程序,它必須檢查客戶端計算機中是否存在某個文件。Win32中的PHP is_file allways返回false

$file = "C:\\Windows\\System32\\rpnt.dll"; 

if (is_file($file)){ 
echo $file . " exists"; 
}else{ 
echo $file . " does not exist"; 
} 

無法完成此項工作。那裏有任何解決方案?

+4

你確定PHP有權限讀取該文件嗎? – ircmaxell 2010-07-21 23:50:32

回答

6

PHP是服務器端,你不能檢查客戶端上是否存在一個文件。出於明顯的安全原因,您也不能使用JavaScript或幾乎任何其他客戶端技術來執行此操作。

它不工作的原因是因爲它檢查是否在服務器上存在'C:\ Windows \ System32 \ rpnt.dll',並且您的Web服務器可能使用基於Linux的操作系統...

+0

我沒有解釋正確,但是這個應用程序在Win32系統中使用WAMPSERVER在本地運行。 – jaclerigo 2010-07-22 07:52:16

+0

對不起,假設你是「客戶端計算機」。它是否適用於文檔根目錄中的文件?如果是這樣,我會導致相信這是一個權限問題。但是,我的股票安裝WAMP is_file似乎與我的system32目錄中的文件正常工作。 :S – 2010-07-23 00:04:10

0

嘗試使用正斜槓(/)而不是反斜槓作爲目錄分隔符。我偶爾會遇到與Windows文件路徑中的反斜槓混淆的問題。

+0

唯一一次我在路徑中遇到反斜槓問題是網絡名稱爲\\ server \ path' vs'// server/path' ...對於常規目錄,我從來沒有看到過問題(我主要在Win32環境下工作)... – ircmaxell 2010-07-21 23:56:52

+0

已經嘗試過,不行。 – jaclerigo 2010-07-21 23:56:57