加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP通过FTP上传文件详解说明

发布时间:2022-07-18 14:21:22 所属栏目:PHP教程 来源:互联网
导读:本文章来总结几个利用php中的ftp功能来实现通过FTP上传文件,有需要学习的朋友可参考参考. ftp_get() 函数从 FTP 服务器上下载一个文件,若成功则返回 true,失败则返回 false. ftp_login() 函数登录 FTP 服务器,若成功则返回 true,失败则返回 false 并发出一个
  本文章来总结几个利用php中的ftp功能来实现通过FTP上传文件,有需要学习的朋友可参考参考.
 
  ftp_get() 函数从 FTP 服务器上下载一个文件,若成功则返回 true,失败则返回 false.
 
 
  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)
  {
   }
  $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;
  }
   }
  //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;
   }
  //R 文件时间
  function fileTime($file) {
  return ftp_mdtm($this->ftpR, $file);
  }
  //R 删除文件;
  function unlink($file) {
  return ftp_delete($this->ftpR, $file);
  }//开源软件:phpfensi.com
  function nlist($dir = '/service/resource/') {
  return ftp_nlist($this->ftpR, $dir);
  }
  //R 关闭连接;
  function bye() {
  return ftp_close($this->ftpR);
  }
  }

(编辑:PHP编程网 - 黄冈站长网)

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

    热点阅读