加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP通过FTP上传文件解说

发布时间:2023-06-13 12:35:23 所属栏目:PHP教程 来源:
导读:本文章来总结几个利用php中的ftp功能来实现通过FTP上传文件,有需要学习的朋友可参考参考.ftp_get() 函数从 FTP 服务器上下载一个文件,若成功则返回 true,失败则返回 false.语法:ftp_get(ftp_connection,local,remote

本文章来总结几个利用php中的ftp功能来实现通过FTP上传文件,有需要学习的朋友可参考参考.

ftp_get() 函数从 FTP 服务器上下载一个文件,若成功则返回 true,失败则返回 false.

语法:ftp_get(ftp_connection,local,remote,mode,resume)

ftp_connect() 函数建立一个新的 FTP 连接,若成功,则返回一个连接标识,否则返回 false.

语法:ftp_connect(host,port,timeout)

ftp_login() 函数登录 FTP 服务器,若成功则返回 true,失败则返回 false 并发出一个警告.

语法:ftp_login(ftp_connection,username,password)

三个函数己经介绍好了,现在开始了.

例1,代码如下:

$ftp_server = "*.*.*.*"; 

$ftp_user = "lu"; 

$ftp_pass = "love you"; 

// set up a connection or die 

$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server"); 

$login_result = ftp_login($conn_id, $ftp_user, $ftp_pass); 

if ((!$conn_id) || (!$login_result)) {  

        echo "FTP connection has failed!"; 

        echo "Attempted to connect to $ftp_server for user $ftp_user_name";  

        exit;  

    } else { 

        echo "Connected to $ftp_server, for user $ftp_user_name"; 

    } 

// try to login 

 $filename=date('Ymd').".xml"; 

 $source_file="/usr/local/IVR/sendwireless/xml/data/".$filename;  //源地址 

 echo $source_file; 

 $destination_file="/ITC/admin/logstat/ftplog/".$filename;  //目标地址 

 $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY) or die("Couldn't connect to $ftp_server");  

 ftp_quit($conn_id); 

 if (!$upload) {  

        echo "FTP upload has failed!"; 

    } else { 

        echo "Uploaded $source_file to $ftp_server as $destination_file"; 

    } 

ftp_close($conn_id); 

上传时先传至本地对文件作必要的修改,如加水印等等操作,然后再通过FTP传至远程服务器.

例2,代码如下:

//上传图片 

if ($_FILES['pic']['name']) 

$file_path='/opt/www/img/'; 

$pic = upload('pic', $filename, 'jpg|jpeg|gif|bmp|png', $file_path); 

if(!$pic) 

echo "图片上传失败!"; 

exit; 

require_once(ROOT_PATH . 'Lib/Class/Ftp.class.php'); 

$ftp = new ftp("127.0.0.1","gamezeroftp","123456","/opt/www"); 

$localfile='/opt/www/img/'.$pic; 

$remotefile='/opt/www/gamepics/'.$pic; 

$ftpput = $ftp->put($localfile, $remotefile); //FTP上传原图到远程服务器 

if(!$ftpput){ 

echo "上传图片到远程服务器失败!"; 

$ftp->bye(); //关闭FTP连接 

附上FTP操作类,代码如下:

ftpUrl=$ftpUrl; 

if($ftpUser){ 

$this->ftpUser=$ftpUser; 

if($ftpPass){ 

$this->ftpPass=$ftpPass; 

if($ftpUrl){ 

$this->ftpDir=$ftpDir; 

if ($this->ftpR = ftp_connect($this->ftpUrl, 21)) { 

if (ftp_login($this->ftpR, $this->ftpUser, $this->ftpPass)) { 

if (!emptyempty($this->ftpDir)) { 

ftp_chdir($this->ftpR, $this->ftpDir); 

ftp_pasv($this->ftpR, true);//R 启用被动模式; 

$status = 1; 

} else { 

$status = 3; 

} else { 

$status = 2; 

//R 切换目录; 

function cd($dir) { 

return ftp_chdir($this->ftpR, $dir); 

//R 返回当前路劲; 

function pwd() { 

return ftp_pwd($this->ftpR); 

//R 创建目录 

function mkdir($directory) { 

return ftp_mkdir($this->ftpR,$directory); 

//R 删除目录 

function rmdir($directory) { 

return ftp_rmdir($this->ftpR,$directory); 

//R 上传文件; 

function put($localFile, $remoteFile = '') { 

if ($remoteFile == '') { 

$remoteFile = end(explode('/', $localFile)); 

$res = ftp_nb_put($this->ftpR, $remoteFile, $localFile, FTP_BINARY); 

while ($res == FTP_MOREDATA) { 

$res = ftp_nb_continue($this->ftpR); 

if ($res == FTP_FINISHED) { 

return true; 

} elseif ($res == FTP_FAILED) { 

return false; 

//R 下载文件; 

function get($remoteFile, $localFile = '') { 

if ($localFile == '') { 

$localFile = end(explode('/', $remoteFile)); 

if (ftp_get($this->ftpR, $localFile, $remoteFile, FTP_BINARY)) { 

$flag = true; 

} else { 

$flag = false; 

return $flag; 

//R 文件大小; 

function size($file) { 

return ftp_size($this->ftpR, $file); 

//R 文件是否存在; 

function isFile($file) { 

if ($this->size($file) >= 0) { 

return true; 

} else { 

return false; 

//R 文件时间 

function fileTime($file) { 

return ftp_mdtm($this->ftpR, $file); 

//R 删除文件; 

function unlink($file) { 

return ftp_delete($this->ftpR, $file); 

}//开源软件:Cuoxin.com 

function nlist($dir = '/service/resource/') { 

return ftp_nlist($this->ftpR, $dir); 

//R 关闭连接; 

function bye() { 

return ftp_close($this->ftpR); 

}

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!