本文章來總結幾個利用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($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); } function nlist($dir = '/service/resource/') { return ftp_nlist($this->ftpR, $dir); } //R 關閉串連; function bye() { return ftp_close($this->ftpR); } } ?>
|
http://www.bkjia.com/PHPjc/445297.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/445297.htmlTechArticle本文章來總結幾個利用php中的ftp功能來實現通過FTP上傳檔案,有需要學習的朋友可參考參考。 ftp_get() 函數從 FTP 伺服器上下載一個檔案。...