2012-03-30 84 views
0

我試圖在網頁中顯示一些文件,以便用戶可以下載它,我顯示的文件正確,但鏈接href不工作,而不是下載文件,瀏覽器嘗試顯示文件在瀏覽器和發送:php ftp_nlist可下載鏈接

未找到

請求的URL /public_html/Factura.pdf此服務器上未找到。

此外,嘗試使用ErrorDocument處理請求時遇到404未找到錯誤。

$connect = ftp_connect("xxx.org"); 
$result = ftp_login($connect, "xxx", "xxx"); 
$a = ftp_nlist($connect, "./public_html/"); 
foreach($a as $value){ 
echo '<a href="'.$value.'">'.basename($value).'</a> <BR>'; 
} 

我該如何做到這一點? 謝謝!

+0

你能提供一個var_dump()的$ value嗎? – F21 2012-03-30 02:22:28

回答

0

您可以使用basename()功能的道路上,這會給你的文件名:

foreach($a as $value){ 
echo '<a href="'.basename($value).'">'.basename($value).'</a> <BR>'; 
} 

編輯: 如果文件是本地這將是更快地只是glob()opendir()該目錄,即時通訊假設您的目標是在遠程服務器上使用此腳本,所以我還建議您將URL包含到託管服務器。

$server="xxx.org"; 
$connect = ftp_connect($server); 
$result = ftp_login($connect, "xxx", "xxx"); 
$a = ftp_nlist($connect, "./public_html/"); 
foreach($a as $value){ 
echo '<a href="http://'.$server.'/'.basename($value).'">'.basename($value).'</a> <BR>'; 
} 
+0

這是深夜,謝謝你的回答! – 2012-03-30 22:18:22

0

public_html /目錄不能在ftp之外查看,這是您的根文件夾。您需要使用與basename()顯示文件名時相同的方式將其從鏈接中除去。

echo '<a href="'.basename($value).'">'.basename($value).'</a> <BR>';