好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

PHP通过FTP上传文件详解介绍

本文章来总结几个利用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  (! empty empty ( $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 );  } //开源软件:phpfensi.com   function  nlist( $dir  =  '/service/resource/' ) {  return  ftp_nlist( $this ->ftpR,  $dir );  }  //R 关闭连接;   function  bye() {  return  ftp_close( $this ->ftpR);  }  }  

查看更多关于PHP通过FTP上传文件详解介绍的详细内容...

  阅读:61次