当前位置:首页 > PHP教程 > php上传下载 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-14 22:10:52 浏览: 评论:0 

本文章来总结几个利用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,代码如下:

  1. $ftp_server = "*.*.*.*"
  2. $ftp_user = "lu"
  3. $ftp_pass = "love you"
  4. // set up a connection or die 
  5. $conn_id = ftp_connect($ftp_serveror die("Couldn't connect to $ftp_server"); 
  6. $login_result = ftp_login($conn_id$ftp_user$ftp_pass); 
  7. if ((!$conn_id) || (!$login_result)) {  
  8.         echo "FTP connection has failed!"
  9.         echo "Attempted to connect to $ftp_server for user $ftp_user_name";  
  10.         exit;  
  11.     } else { 
  12.         echo "Connected to $ftp_server, for user $ftp_user_name"
  13.     } 
  14. // try to login 
  15.  $filename=date('Ymd').".xml"
  16.  $source_file="/usr/local/IVR/sendwireless/xml/data/".$filename;  //源地址 
  17.  echo $source_file
  18.  $destination_file="/ITC/admin/logstat/ftplog/".$filename;  //目标地址 
  19.  $upload = ftp_put($conn_id$destination_file$source_file, FTP_BINARY) or die("Couldn't connect to $ftp_server");  
  20.  ftp_quit($conn_id); 
  21.  if (!$upload) {  
  22.         echo "FTP upload has failed!"
  23.     } else { 
  24.         echo "Uploaded $source_file to $ftp_server as $destination_file"
  25.     } 
  26. ftp_close($conn_id); 

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

例2,代码如下:

  1. //上传图片 
  2. if ($_FILES['pic']['name']) 
  3. $file_path='/opt/www/img/'
  4. $pic = upload('pic'$filename'jpg|jpeg|gif|bmp|png'$file_path); 
  5. if(!$pic
  6. echo "图片上传失败!"
  7. exit
  8. require_once(ROOT_PATH . 'Lib/Class/Ftp.class.php'); 
  9. $ftp = new ftp("127.0.0.1","gamezeroftp","123456","/opt/www"); 
  10. $localfile='/opt/www/img/'.$pic
  11. $remotefile='/opt/www/gamepics/'.$pic
  12. $ftpput = $ftp->put($localfile$remotefile); //FTP上传原图到远程服务器 
  13. if(!$ftpput){ 
  14. echo "上传图片到远程服务器失败!"
  15. $ftp->bye(); //关闭FTP连接 

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

  1. ftpUrl=$ftpUrl
  2. if($ftpUser){ 
  3. $this->ftpUser=$ftpUser
  4. if($ftpPass){ 
  5. $this->ftpPass=$ftpPass
  6. if($ftpUrl){ 
  7. $this->ftpDir=$ftpDir
  8. if ($this->ftpR = ftp_connect($this->ftpUrl, 21)) { 
  9. if (ftp_login($this->ftpR, $this->ftpUser, $this->ftpPass)) { 
  10. if (!emptyempty($this->ftpDir)) { 
  11. ftp_chdir($this->ftpR, $this->ftpDir); 
  12. ftp_pasv($this->ftpR, true);//R 启用被动模式; 
  13. $status = 1; 
  14. else { 
  15. $status = 3; 
  16. else { 
  17. $status = 2; 
  18. //R 切换目录; 
  19. function cd($dir) { 
  20. return ftp_chdir($this->ftpR, $dir); 
  21. //R 返回当前路劲; 
  22. function pwd() { 
  23. return ftp_pwd($this->ftpR); 
  24. //R 创建目录 
  25. function mkdir($directory) { 
  26. return ftp_mkdir($this->ftpR,$directory); 
  27. //R 删除目录 
  28. function rmdir($directory) { 
  29. return ftp_rmdir($this->ftpR,$directory); 
  30. //R 上传文件; 
  31. function put($localFile$remoteFile = '') { 
  32. if ($remoteFile == '') { 
  33. $remoteFile = end(explode('/'$localFile)); 
  34. $res = ftp_nb_put($this->ftpR, $remoteFile$localFile, FTP_BINARY); 
  35. while ($res == FTP_MOREDATA) { 
  36. $res = ftp_nb_continue($this->ftpR); 
  37. if ($res == FTP_FINISHED) { 
  38. return true; 
  39. elseif ($res == FTP_FAILED) { 
  40. return false; 
  41. //R 下载文件; 
  42. function get($remoteFile$localFile = '') { 
  43. if ($localFile == '') { 
  44. $localFile = end(explode('/'$remoteFile)); 
  45. if (ftp_get($this->ftpR, $localFile$remoteFile, FTP_BINARY)) { 
  46. $flag = true; 
  47. else { 
  48. $flag = false; 
  49. return $flag
  50. //R 文件大小; 
  51. function size($file) { 
  52. return ftp_size($this->ftpR, $file); 
  53. //R 文件是否存在; 
  54. function isFile($file) { 
  55. if ($this->size($file) >= 0) { 
  56. return true; 
  57. else { 
  58. return false; 
  59. //R 文件时间 
  60. function fileTime($file) { 
  61. return ftp_mdtm($this->ftpR, $file); 
  62. //R 删除文件; 
  63. function unlink($file) { 
  64. return ftp_delete($this->ftpR, $file); 
  65. }//开源软件:phpfensi.com 
  66. function nlist($dir = '/service/resource/') { 
  67. return ftp_nlist($this->ftpR, $dir); 
  68. //R 关闭连接; 
  69. function bye() { 
  70. return ftp_close($this->ftpR); 
  71. }

Tags: FTP上传文件 PHP上传文件

分享到: