PHP通過FTP上傳檔案詳解介紹_PHP教程

來源:互聯網
上載者:User
本文章來總結幾個利用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 伺服器上下載一個檔案。...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.