ประยุกต์ สร้าง FTP Function สำหรับการจัดการไฟล์ผ่าน FTP Protocal

Bookmark and Share

สร้างไฟล์ php สำหรับ ftp function บันทึกเป็น config_ftp.php ไว้เรียกใช้

<?php      
// ฟังก์ชันการติดกับ server ผ่าน FTP      
function ftpOpen(){      
    // กำหนดค่าการติดต่อ FTP       
    $ftp_user_name = 'username'; // userane      
    $ftp_user_pass = 'password'; // password      
    $ftp_server = 'www.yourdomain.com'; // server      
    $conn_id = ftp_connect($ftp_server);      
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);      
    return $conn_id;      
}        
      
// ฟังก์ชันสำหรับกำหนด permissions         
function ftpChmod($conn_id, $permissions,$parentDir,$nameDir){           
    $fullPath=$parentDir.$nameDir;    
	$isDir=ftp_chdir($conn_id,$fullPath);
    ftp_chdir($conn_id,$parentDir); // ไปที่โฟลเดอร์หลักที่จะใช้งาน   
    if($isDir){   
        if(ftp_site($conn_id, 'CHMOD '.$permissions.' '.$fullPath) !== false){         
            return true;         
        }else{      
            return false;         
        }          
    }           
}     
  
// ฟังก์ชันสำหรับสร้าง Directory หรือ Folder   
function ftpMakeDir($conn_id,$parentDir,$nameDir){          
    $fullPath=$parentDir.$nameDir;    
	$isDir=ftp_chdir($conn_id,$fullPath);
    ftp_chdir($conn_id,$parentDir); // ไปที่โฟลเดอร์หลักที่จะใช้งาน   
    if(!$isDir){   
        if(ftp_mkdir($conn_id,$nameDir)) {    
            return true;   
        }else{   
            return false;    
        }          
    }      
}   
  
// ฟังก์ชันสำหรับลบ Directory หรือ Folder (ข้อระวัง* หากมีไฟล์ภายใน ระบบจะลบไฟล์ทั้งหมดใน Folder)   
function ftpRemoveDir($conn_id,$parentDir,$nameDir){         
    $fullPath=$parentDir.$nameDir;    
	$isDir=ftp_chdir($conn_id,$fullPath);
    ftp_chdir($conn_id,$parentDir); // ไปที่โฟลเดอร์หลักที่จะใช้งาน   
    if($isDir){   
		$contents = ftp_nlist($conn_id,$fullPath); 
		if(count($contents)>=3){
			ftp_chdir($conn_id,$fullPath);		
			foreach($contents as $key=>$value){
				if(!is_dir(basename($value))){
					ftp_site($conn_id, 'CHMOD 0777 '.$value);
					ftp_delete($conn_id,$value);
				}
			}
			ftp_chdir($conn_id,$parentDir);		
			if(ftp_rmdir($conn_id,$nameDir)) {    
				return true;   
			}else{   
				if(ftp_site($conn_id, 'CHMOD 0777 '.$fullPath)){       
					if(ftp_rmdir($conn_id,$nameDir)) {    
						return true;   
					}else{   
						return false;    
					}   
				}else{   
					return false;    
				}          
			}      	
		}else{
			if(ftp_rmdir($conn_id,$nameDir)) {    
				return true;   
			}else{   
				if(ftp_site($conn_id, 'CHMOD 0777 '.$fullPath)){       
					if(ftp_rmdir($conn_id,$nameDir)) {    
						return true;   
					}else{   
						return false;    
					}   
				}else{   
					return false;    
				}          
			}      		
		}
    }      
}   
  
// ฟังก์ชันสำหรับเปลี่ยนชื่อ Directory หรือ Folder   
function ftpRenameDir($conn_id,$parentDir,$nameDir,$newNameDir){         
    $fullPath=$parentDir.$nameDir;    
	$isDir=ftp_chdir($conn_id,$fullPath);
    ftp_chdir($conn_id,$parentDir);    
    if($isDir){   
        if(ftp_rename($conn_id,$nameDir,$newNameDir)) {    
            return true;   
        }else{   
            if(ftp_site($conn_id, 'CHMOD 0777 '.$fullPath)){       
                if(ftp_rename($conn_id,$nameDir,$newNameDir)) {    
                    return true;   
                }else{   
                    return false;    
                }   
            }else{   
                return false;    
            }          
        }      
    }      
}   
    

// ฟังก์ชันสำหรับกำหนด permissions     ไฟล์    
function ftpChmodFile($conn_id, $permissions,$parentDir,$nameDir,$fileName){           
	$fullPath=$parentDir.$nameDir;    
    $fullPathFile=$parentDir.$nameDir."/".$fileName;    
	$isDir=ftp_chdir($conn_id,$fullPath);
    if($isDir){   
        if(ftp_site($conn_id, 'CHMOD '.$permissions.' '.$fullPathFile) !== false){         
            return true;         
        }else{      
            return false;         
        }          
    }           
}     	

// ฟังก์ชันสำหรับเปลี่ยนชื่อ ไฟล์ 
function ftpRenameFile($conn_id,$parentDir,$nameDir,$fileName,$new_fileName){         
    $fullPath=$parentDir.$nameDir;    
	$fullPathFile=$parentDir.$nameDir."/".$fileName;    
	$isDir=ftp_chdir($conn_id,$fullPath);
    if($isDir){   
        if(ftp_rename($conn_id,$fileName,$new_fileName)) {    
            return true;   
        }else{   
            if(ftp_site($conn_id, 'CHMOD 0777 '.$fullPathFile)){       
                if(ftp_rename($conn_id,$fileName,$new_fileName)) {    
                    return true;   
                }else{   
                    return false;    
                }   
            }else{   
                return false;    
            }          
        }      
    }      
}   	

// ฟังก์ชันสำหรับหาขนาดไฟล์
function ftpFileSize($conn_id,$parentDir,$nameDir,$fileName){         
    $fullPath=$parentDir.$nameDir;    
	$fullPathFile=$parentDir.$nameDir."/".$fileName;    
	$isDir=ftp_chdir($conn_id,$fullPath);
    if($isDir){   
        if(ftp_size($conn_id,$fileName)!=-1) {    
            return ftp_size($conn_id,$fileName);
        }else{   
			return  false;
        }      
    }      
}   	
	
// ฟังก์ชันสำหรับหา ว่ามีไฟล์ชื่อนี้หรือไม่
function ftpIsFile($conn_id,$parentDir,$nameDir,$fileName){         
    $fullPath=$parentDir.$nameDir;    
	$fullPathFile=$parentDir.$nameDir."/".$fileName;    
	$isDir=ftp_chdir($conn_id,$fullPath);
    if($isDir){   
        if(ftp_size($conn_id,$fileName)!=-1) {    
            return true;
        }else{   
			return  false;
        }      
    }      
}  	
	
// ฟังก์ชันสำหรับอัพโหลดไฟล์
function ftpUploadFile($conn_id,$parentDir,$nameDir,$fileName,$uploadFile){         
    $fullPath=$parentDir.$nameDir;    
	$fullPathFile=$parentDir.$nameDir."/".$fileName;    
	$isDir=ftp_chdir($conn_id,$fullPath);
    if($isDir){   
		if(ftp_put($conn_id, $fileName,$uploadFile,FTP_ASCII)){
			if(ftp_site($conn_id, 'CHMOD 0777 '.$fullPathFile)){
				return true;
			}else{
				return false;
			}			
		}else{
			return false;
		}
    }      
}   		
	
// ฟังก์ชันสำหรับลบ ไฟล์
function ftpRemoveFile($conn_id,$parentDir,$nameDir,$fileName){         
    $fullPath=$parentDir.$nameDir;    
	$fullPathFile=$parentDir.$nameDir."/".$fileName;    
	$isDir=ftp_chdir($conn_id,$fullPath);
    if($isDir){   
		if(ftp_delete($conn_id,$fileName)){
			return true;
		}else{
           if(ftp_site($conn_id, 'CHMOD 0777 '.$fullPathFile)){       
                if(ftp_delete($conn_id,$fileName)) {    
                    return true;   
                }else{   
                    return false;    
                }   
            }else{   
                return false;    
            }    		
		}
    }      
}   	
	
// ฟังก์ชันปิดการเชื่อมต่อ Server ผ่าน FTP         
function ftpClose($conn_id){         
    ftp_close($conn_id);         
}         
?>      

ตัวอย่างการใช้งาน

<?php    
include("config_ftp.php");
$parentDir="/domains/youdomain.com/public_html/test/"; // Directory หลักสำหรับจัดการ
$nameDir="folder1"; // ฃื่อ Directory ที่ต้องการสร้าง, กำหนด permissions, ลบ, หรือเปลี่ยนชื่อ
$newNameDir="myNewFolder";  // ชื่อ Directory ใหม่กรณีเปลี่ยนชื่อ Directory

$conn_id = ftpOpen();      // เปิดการเชื่อมต่อผ่าน FTP     
if($conn_id){   
	// ฟังก์ชันสำหรับกำหนด permissions     
	ftpChmod($conn_id, $permissions,$parentDir,$nameDir);     
	// ตัวอย่าง   ftpChmod($conn_id, "0777",$parentDir,$nameDir);
	
	// ฟังก์ชันสำหรับสร้าง Directory หรือ Folder   
	ftpMakeDir($conn_id,$parentDir,$nameDir);  
	// ตัวอย่าง   ftpMakeDir($conn_id,$parentDir,$nameDir);    
	
	// ฟังก์ชันสำหรับลบ Directory หรือ Folder (ข้อระวัง* หากมีไฟล์ภายใน ระบบจะลบไฟล์ทั้งหมดใน Folder)   
	ftpRemoveDir($conn_id,$parentDir,$nameDir);     
	// ตัวอย่าง  ftpRemoveDir($conn_id,$parentDir,$nameDir);       
	
	// ฟังก์ชันสำหรับเปลี่ยนชื่อ Directory หรือ Folder   
	ftpRenameDir($conn_id,$parentDir,$nameDir,$newNameDir);      
	// ตัวอย่าง  ftpRenameDir($conn_id,$parentDir,$nameDir,$newNameDir);      
	
	// ฟังก์ชันสำหรับเปลี่ยนชื่อ ไฟล์ 
	ftpRenameFile($conn_id,$parentDir,$nameDir,$fileName,$new_fileName);      
	// ตัวอย่าง  ftpRenameFile($conn_id,$parentDir,$nameDir,$fileName,$new_fileName);         
	
	// ฟังก์ชันสำหรับหาขนาดไฟล์
	ftpFileSize($conn_id,$parentDir,$nameDir,$fileName);       
	// ตัวอย่าง  ftpFileSize($conn_id,$parentDir,$nameDir,$fileName);      
	
	// ฟังก์ชันสำหรับหา ว่ามีไฟล์ชื่อนี้หรือไม่
	ftpIsFile($conn_id,$parentDir,$nameDir,$fileName);  
	// ตัวอย่าง  ftpIsFile($conn_id,$parentDir,$nameDir,$fileName);         
	
	// ฟังก์ชันสำหรับอัพโหลดไฟล์
	ftpUploadFile($conn_id,$parentDir,$nameDir,$fileName,$uploadFile);     
	// ตัวอย่าง  ftpUploadFile($conn_id,$parentDir,$nameDir,$_FILES['file']['name'],$_FILES['file']['tmp_name']);        
	
	// ฟังก์ชันสำหรับลบ ไฟล์
	ftpRemoveFile($conn_id,$parentDir,$nameDir,$fileName);      
	// ตัวอย่าง  ftpRemoveFile($conn_id,$parentDir,$nameDir,$fileName);      

	ftpClose($conn_id);      // ปิดการติดต่อผ่าน FTP     
}   
?>   



บทความในหมวดที่่น่าสนใจ อื่นๆ PHP Learning

02 Mar 10 ประยุกต์ แปลเนื้อหา ในเว็บไซต์ด้วย google translater api สำหรับ php อ่าน 329 19 Jul 10 การนำ ระบบสมาชิก ของ facebook มาประยุกต์ใช้ อ่าน 260 26 Mar 10 ความแตกต่าง ระหว่าง ฟังก์ชัน strstr กับ strrchr และ การประยุกต์ ใช้งาน อ่าน 151 08 Jun 10 ป้องกัน spam ด้วย captcha คำถาม ทางคณิตศาสตร์ อย่างง่าย อ่าน 137 17 Jun 10 สร้างฟังก์ชัน ตรวจสอบ การเข้าเว็บไซต์ ผ่านมือถือ ด้วย php อ่าน 133 09 May 10 ดึงค่า ข้อมูล จาก xml ไฟล์ มากำหนดเป็นตัวแปร array ด้วย php อ่าน 131 28 May 10 แสดง การแจ้งเตือน ให้เปิด หรือ บันทึกไฟล์ที่ดาวน์โหลด ด้วย php อ่าน 126
จำนวนผู้เยี่ยมชม 157925 คน 2010 © Copyright ninenik.com. All rights reserved.