复制代码代码如下:
/*
用ftp_nlist()函授时,返回的数组值会有两种类型:因服务器不同而异
a:单独的文件名
b:包含目录的文件名。
如果挪用,请注意更改此处。
*/
functiondownload_file($dir,$fc,$_FILE_)
{
$fn=ftp_nlist($fc,".");//列出该目录的文件名(含子目录),存储在数组中
$size=sizeof($fn);
$dir=($dir=="")?$dir:('/'.$dir);
$_FILE_=$_FILE_.$dir;
echo$_FILE_."
";
for($i=0;$i
{
if(ereg('^[a-zA-Z0-9_]+',$fn[$i]))//提取是文件和目录,剔除.,..这两个目录
{
if(ereg('^[a-zA-Z0-9_]+([a-zA-Z0-9-]*.*)(.+)',$fn[$i]))//是文件时直接下载
{
if(ftp_get($fc,$fn[$i],$fn[$i],FTP_BINARY))
{
echo"
下载".getcwd()."/".$fn[$i]."成功
";
}
else
{
echo"
下载".getcwd()."/".$fn[$i]."失败
";
}
}//文件下载结束
else//"是目录,进入目录,再读取文件";
{
if(!file_exists($fn[$i]))
mkdir($fn[$i],0700);//本地机器上该目录不存在就创建一个
if(ftp_chdir($fc,$fn[$i]))
chdir($fn[$i]);
echo"当前的目录是:".getcwd()."
";//更好的看清当前目录
download_file($fn[$i],$fc,$_FILE_);//递归进入该目录下载文件
}
}//提取文件,目录结束
}//for循环结束
ftp_cdup($fc);//ftp服务器返回上层目录
chdir(dirname($_FILE_));
}//download——file()函数结束
$_FILE_="本地机绝对地址";//例如c:/download,不要这样c:/download/
$hostname="服务器名";
$loginname="用户名";
$password="用户密码";
$fc=ftp_connect($hostname,"21")ordie("Couldn'tconnectto$hostname");
$fc_rw=ftp_login($fc,$loginname,$password);
ftp_set_option($fc,FTP_TIMEOUT_SEC,100000);//设置超时时间
$dir="";chdir($_FILE_);//进入本地机绝对地址目录
download_file($dir,$fc,$_FILE_);
ftp_quit($fc);
//从服务器下载文件树的程序
?>
希望能给大家带去帮助,谢谢
您可能感兴趣的文章:PHP实现远程下载文件到本地php实现当前页面点击下载文件的实例代码php中强制下载文件的代码(解决了IE下中文文件名乱码问题)php下载文件源代码(强制任意文件格式下载)phpdownload.php实现代码跳转到下载文件(response.redirect)PHP/ThinkPHP实现批量打包下载文件的方法示例PHP下载文件时自动添加bom头的方法实例PHP下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法php实现SAE上使用storage上传与下载文件的方法PHP实现从远程下载文件的方法php+js实现的无刷新下载文件功能示例