iT邦幫忙

0

請教絕對與相對路徑指向網頁搜尋檔案建立超連結差異問題

lichang 1 月前3062 瀏覽

小弟寫了一個搜尋資料夾內檔案列表並做超連結的功能
但是為什麼在指定資料夾時,使用"絕對路徑"與"相對路徑"得到的路徑屬性會不一樣
絕對路徑:會是file模式
相對路徑:會是http模式

導致我網頁要開啟他會呈現不同結果

(因為我要跨磁碟機搜尋,所以我需要用絕對路徑指向http模式) /images/emoticon/emoticon12.gif

以下是我的程式寫法:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>無標題文件</title>
</head>

<body>
<?php
header("content-type:text/html; charset=utf-8");

$FileDir = '../';  //相對路徑指定方式	
//$FileDir = 'C:/PHP/';  //絕對路徑指定方式	
	
$FilePDF=glob("$FileDir/*.*");  //搜尋檔案

	
	
foreach ($FilePDF as $i =>$value){

$filename = iconv("big5", "UTF-8", $value);   
$ext = (explode('/', $filename)); 
$file_ext = end($ext);                          
echo '<a href="'.$filename.'" target=new>'.$file_ext.'</a>';	
echo "<br>";  
 }
	
?>	
	
	
</body>
</html>

2 個回答

0
海綿寶寶
iT邦超人 1 級 ‧ 1 月前

過了一個年
還是不考慮使用資料庫嗎?

lichang iT邦新手 5 級 ‧ 1 月前 檢舉

被發現了,我已經快完成了,就差一點點!幫我解惑一下吧!

海綿寶寶 iT邦超人 1 級 ‧ 1 月前 檢舉

被發現了
我不會

不用高興的太早
等您「完成」之後不久
就會有新的要求會出現

我隨便猜一個
看看改天會不會中
不同使用者,只能看到自己的目錄

0
cojad
iT邦新手 3 級 ‧ 1 月前

先說明一下, 你所講的屬性 http/file 其實應該稱之為通訊協定.

你寫的檔案搜尋器如果使用 file:// 開頭的本機路徑的存取方式, 將只能運作你程式運作的那台電腦上面, 因為 file:// 是瀏覽器直接存取本機的各個磁碟機, 所以不同台電腦的本機磁碟機自然都是不一樣的內容(網路共享磁碟可能例外)

如果你是用 http:// 相對路徑的時候, 瀏覽器是經由的Web Server存取Web Server那台電腦的本機檔案, 而不是直接透過瀏覽器存取本機的檔案. 這產生了一個很大的不同, 也就是任何一台可憐得到你寫的php網頁的電腦都能看得到你這一台伺服器超連結連結的檔案.

大部份時候我們在寫php網頁是為了讓許多台電腦連到這台電腦都能看到需要的結果, 而不是只有運作的電腦本身自己能用就好, 如果你希望讓別台電腦也能正常使用這個php網頁搜尋到的檔案, 你要重新考慮怎麼做, 因為你必須放棄使用 file:// 這種不透過 Web Server 存取檔案的方法

我要發表回答

立即登入回答