php ftp_nlist可下载链接

时间:2012-03-30 02:16:47

标签: php ftp

我试图在网页中显示一些文件以便用户可以下载它,我正确显示文件但链接href不起作用,而不是下载文件,浏览器尝试在浏览器中显示文件发送:

未找到

在此服务器上找不到请求的网址/public_html/Factura.pdf。

此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误。

$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>';
}

我怎么能做到这一点? 谢谢!

2 个答案:

答案 0 :(得分:0)

在ftp之外无法查看public_html /目录,这是您的根文件夹。您需要使用与basename()显示文件名时相同的方式将其从链接中删除。

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

答案 1 :(得分:0)

您可以在路径上使用basename()功能,这将为您提供文件名:

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

修改 如果这些文件是本地文件,那么只需要glob()opendir()目录即可,我假设您的目标是在远程服务器上使用此脚本,因此我还建议您将该网址包含在托管中服务器

$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>';
}