本文章来总结几个利用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上传文件详解介绍的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did29416