php上传下载ftp传送文件源码

php网页程序去连接ftp服务器,首先要确保php所在站点可以与ftp通讯,然后php所需的传送函数没有被禁用。

确保了以上工作,就可以开始执行下面给出代码了:

上传代码:

<?php
$ftp_server= "xx.xxx.xxx.xx";
$ftp_user_name= "ftpname";
$ftp_user_pass= "ftppasswd";
$local_file = "bao.zip";        //本地文件
$server_file = "/bao.zip";       //待上传后文件所在路径
$conn_id = ftp_connect($ftp_server);         //联接FTP
$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass) or die("Login error");  //登录
$fp=fopen($local_file,"r");
ftp_pasv($conn_id, true);               //开启被动模式传输 (在非开启的情况下,由于本地的防火墙等限制,将有可能出现Warning: ftp_fput() [function.ftp-fput]: Opening ASCII mode data connection的警告从而上传失败
//上传参数
if(ftp_fput($conn_id,$server_file,$fp,FTP_BINARY)) {
echo "Successfully uploaded $server_file\n";
}else{
echo "There was a problem while uploading $file\n";
}
//关闭连接
ftp_close($conn_id);
fclose($fp);
?>

下载代码:

<?php
$ftp_server= "xx.xxx.xxx.xx";
$ftp_user_name= "ftpname";
$ftp_user_pass= "ftppasswd";
$file = '2011-08-18_213401_UTC.sql.gz';
$local_file = $file;
$server_file = $file;
//连接FTP服务器
$conn_id = ftp_connect($ftp_server);
//验证用户名和密码
$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass) or die("Login error");  //登录
//下载参数
if(ftp_get($conn_id,$local_file,$server_file,FTP_BINARY)) {
echo "Successfully download $file\n";
}else{
echo "There was a problem error $file\n";
}
//关闭FTP连接
ftp_close($conn_id);
?>

以上代码经过验证。

在调试过程中出现:Warning: ftp_login() expects parameter 1 to be resource, boolean given in …

提示错误,是由于php空间不支持ftp传输,ftp连接端口被关闭所致,尝试换个空间。

此条目是由 malu8 发表在 未分类 分类目录的。将固定链接加入收藏夹。

评论已关闭。