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

เขียนเมื่อ 14 ปีก่อน โดย Ninenik Narkdee
ftp function ftp php

คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ ftp function ftp php

ดูแล้ว 9,753 ครั้ง




เนื้อหานี้ เราจะสร้าง php function เกี่ยวกับการใช้งาน ftp function เพื่อให้สะดวกในการ
นำไปใช้งานได้ง่ายขึ้น หรือใช้แก้ปัญหาในกรณีที่บางคำสั่งไม่สามารถใช้งานผ่าน php function
ปกติธรรมดาได้ เช่น การ chmod ไฟล์ หรือ โฟลเดอร์ เป็นต้น
 
เริ่มต้น ให้เราสร้างไฟล์ 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;    
	if(@ftp_chdir($conn_id,$fullPath)){ // folder exist
        if(@ftp_site($conn_id, 'CHMOD '.$permissions.' '.$fullPath) !== false){         
            return true;         
        }else{      
            return false;         
        }    
	}else{ // folder not yet
		return false;    
	} // end    
}     
   
// ฟังก์ชันสำหรับสร้าง Directory หรือ Folder   
function ftpMakeDir($conn_id,$parentDir,$nameDir){          
    $fullPath=$parentDir.$nameDir;    
	if(!@ftp_chdir($conn_id,$fullPath)){ // folder not yet
		if(@ftp_chdir($conn_id,$parentDir)){ // ไปที่โฟลเดอร์หลักที่จะใช้งาน   
			if(@ftp_mkdir($conn_id,$nameDir)) {    
				return true;   
			}else{   
				return false;    
			}     		
		}else{
			return false;    			
		}
	}else{ // folder exist
		return true;   
	} // end
}   
   
// ฟังก์ชันสำหรับลบ Directory หรือ Folder (ข้อระวัง* หากมีไฟล์ภายใน ระบบจะลบไฟล์ทั้งหมดใน Folder)   
function ftpRemoveDir($conn_id,$parentDir,$nameDir){         
    $fullPath=$parentDir.$nameDir;   	 
	if(@ftp_chdir($conn_id,$fullPath)){ // folder exist
        $contents = @ftp_nlist($conn_id,$fullPath); 
        if(count($contents)>=3){ // have file or folder inside
            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{ // no file or folder inside
            @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{ // folder not yet
		return false;    
	} // end    	
	
}   
   
// ฟังก์ชันสำหรับเปลี่ยนชื่อ Directory หรือ Folder   
function ftpRenameDir($conn_id,$parentDir,$nameDir,$newNameDir){         
    $fullPath=$parentDir.$nameDir;    
	if(@ftp_chdir($conn_id,$fullPath)){ // folder exist
		@ftp_chdir($conn_id,$parentDir);     	
        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;    
            }          
        }      
	}else{ // folder not yet
		return false;    
	} // end    	
	
}   
     
 
// ฟังก์ชันสำหรับกำหนด permissions     ไฟล์    
function ftpChmodFile($conn_id, $permissions,$parentDir,$nameDir,$fileName){           
    $fullPath=$parentDir.$nameDir;    
    $fullPathFile=$parentDir.$nameDir."/".$fileName;    
	if(@ftp_chdir($conn_id,$fullPath)){ // folder exist
        if(@ftp_site($conn_id, 'CHMOD '.$permissions.' '.$fullPathFile) !== false){         
            return true;         
        }else{      
            return false;         
        }       
	}else{ // folder not yet
		return false;    
	} // end  		      
}       
 
// ฟังก์ชันสำหรับเปลี่ยนชื่อ ไฟล์ 
function ftpRenameFile($conn_id,$parentDir,$nameDir,$fileName,$new_fileName){         
    $fullPath=$parentDir.$nameDir;    
    $fullPathFile=$parentDir.$nameDir."/".$fileName;    	
	if(@ftp_chdir($conn_id,$fullPath)){ // folder exist
        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;    
            }          
        }     
	}else{ // folder not yet
		return false;    
	} // end  		
}       
 
// ฟังก์ชันสำหรับหาขนาดไฟล์
function ftpFileSize($conn_id,$parentDir,$nameDir,$fileName){         
    $fullPath=$parentDir.$nameDir;    
    $fullPathFile=$parentDir.$nameDir."/".$fileName;    
	if(@ftp_chdir($conn_id,$fullPath)){ // folder exist
        if(@ftp_size($conn_id,$fileName)!=-1) {    
            return @ftp_size($conn_id,$fileName);
        }else{   
            return  false;
        }      
	}else{ // folder not yet
		return false;    
	} // end  	
}       
     
// ฟังก์ชันสำหรับหา ว่ามีไฟล์ชื่อนี้หรือไม่
function ftpIsFile($conn_id,$parentDir,$nameDir,$fileName){         
    $fullPath=$parentDir.$nameDir;    
    $fullPathFile=$parentDir.$nameDir."/".$fileName;    	
	if(@ftp_chdir($conn_id,$fullPath)){ // folder exist
        if(@ftp_size($conn_id,$fileName)!=-1) {    
            return true;
        }else{   
            return  false;
        }      
	}else{ // folder not yet
		return false;    
	} // end    	   
}   
     
// ฟังก์ชันสำหรับอัพโหลดไฟล์
function ftpUploadFile($conn_id,$parentDir,$nameDir,$fileName,$uploadFile){         
    $fullPath=$parentDir.$nameDir;    
    $fullPathFile=$parentDir.$nameDir."/".$fileName;    
	if(@ftp_chdir($conn_id,$fullPath)){ // folder exist
        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;
        }
	}else{ // folder not yet
		return false;    
	} // end    	  	
}           
     
// ฟังก์ชันสำหรับลบ ไฟล์
function ftpRemoveFile($conn_id,$parentDir,$nameDir,$fileName){         
    $fullPath=$parentDir.$nameDir;    
    $fullPathFile=$parentDir.$nameDir."/".$fileName;    	
	if(@ftp_chdir($conn_id,$fullPath)){ // folder exist
        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;    
            }           
        }  
	}else{ // folder not yet
		return false;    
	} // end    		
	
}       
     
// ฟังก์ชันปิดการเชื่อมต่อ Server ผ่าน FTP         
function ftpClose($conn_id){         
    ftp_close($conn_id);         
}     
?>
 
ตัวอย่างการใช้งาน แนะนำให้ทดสอบใช้งาน ตามวิธีด้านล่าง การนำไปประยุกต์เพิ่มเติม
 
<?php    
require_once("config_ftp.php");
$parentDir="/domains/youdomain.com/public_html/test/"; // Directory หลักสำหรับจัดการ
/*
	การกำหนด path ไฟล์ จะขึ้นอยู่กับการตั้งค่า ของ user นั้นว่ากำหนดใน ftp account หรือ
	บัญชีผู้ใช้งาน ftp อย่างไร และก็ขึ้นกับ server ที่ใช้งาน กรณีข้างต้นเป็น
	$parentDir="/domains/youdomain.com/public_html/test/"; // Directory หลักสำหรับจัดการ
	หรืออาจจะเป็น 
	$parentDir="/public_html/test/"; // Directory หลักสำหรับจัดการ
*/

// ตัวแปรส่วนนี้ เป็นส่วนสำหรับทดสอบ เราจะกำหนดจุดนี้ หรือไปกำหนดในตอนเรียกใช้ฟัก์ชั่นก็ได้
$nameDir="folder1"; // ฃื่อ Directory ที่ต้องการสร้าง, กำหนด permissions, ลบ, หรือเปลี่ยนชื่อ
$newNameDir="myNewFolder";  // ชื่อ Directory ใหม่กรณีเปลี่ยนชื่อ Directory
$fileName="testpic.jpg";  // สมมติมีไฟล์ชื่อนี้อยู่ในโฟลเดอร์ folder1
$new_fileName="testpic2.jpg"; // สมมติชื่อไฟล์ใหม่
 
 
$conn_id = ftpOpen();      // เปิดการเชื่อมต่อผ่าน FTP     
if($conn_id){   
    // ฟังก์ชันสำหรับกำหนด permissions     
    ftpChmod($conn_id, $permissions,$parentDir,$nameDir);     
    // ตัวอย่าง   ftpChmod($conn_id, "0777",$parentDir,$nameDir);
     // การใช้งาน
	 if(ftpChmod($conn_id, "0777",$parentDir,$nameDir)){
			echo "Success"; 
	 }else{
			echo "Fail";  
	 }
	 
	 	 
    // ฟังก์ชันสำหรับสร้าง Directory หรือ Folder   
    ftpMakeDir($conn_id,$parentDir,$nameDir);  
    // ตัวอย่าง   ftpMakeDir($conn_id,$parentDir,$nameDir);    
	// การใช้งาน
	 if(ftpMakeDir($conn_id,$parentDir,$nameDir)){
			echo "Success"; 
	 }else{
			echo "Fail";  
	 }	
     
    // ฟังก์ชันสำหรับลบ Directory หรือ Folder (ข้อระวัง* หากมีไฟล์ภายใน ระบบจะลบไฟล์ทั้งหมดใน Folder)   
    ftpRemoveDir($conn_id,$parentDir,$nameDir);     
    // ตัวอย่าง  ftpRemoveDir($conn_id,$parentDir,$nameDir);       
	// การใช้งาน
	 if(ftpRemoveDir($conn_id,$parentDir,$nameDir)){
			echo "Success"; 
	 }else{
			echo "Fail";  
	 }		
     
    // ฟังก์ชันสำหรับเปลี่ยนชื่อ Directory หรือ Folder   
    ftpRenameDir($conn_id,$parentDir,$nameDir,$newNameDir);      
    // ตัวอย่าง  ftpRenameDir($conn_id,$parentDir,$nameDir,$newNameDir);      
	// การใช้งาน
	 if(ftpRenameDir($conn_id,$parentDir,$nameDir,$newNameDir)){
			echo "Success"; 
	 }else{
			echo "Fail";  
	 }			
     
    // ฟังก์ชันสำหรับเปลี่ยนชื่อ ไฟล์ 
    ftpRenameFile($conn_id,$parentDir,$nameDir,$fileName,$new_fileName);      
    // ตัวอย่าง  ftpRenameFile($conn_id,$parentDir,$nameDir,$fileName,$new_fileName);         
     // การใช้งาน
	 if(ftpRenameFile($conn_id,$parentDir,$nameDir,$fileName,$new_fileName)){
			echo "Success"; 
	 }else{
			echo "Fail";  
	 }		 
	 
	 // ฟังก์ชั่นสำหรับเปลี่ยนไฟล์ permission
	 ftpChmodFile($conn_id, $permissions,$parentDir,$nameDir,$fileName);
	// ตัวอย่าง ftpChmodFile($conn_id,"0777",$parentDir,$nameDir,$fileName);
     // การใช้งาน	
	if(ftpChmodFile($conn_id,"0777",$parentDir,$nameDir,$fileName)){
			echo "Success"; 
	 }else{
			echo "Fail";  
	 }		 
	 
    // ฟังก์ชันสำหรับหาขนาดไฟล์
    ftpFileSize($conn_id,$parentDir,$nameDir,$fileName);       
    // ตัวอย่าง  ftpFileSize($conn_id,$parentDir,$nameDir,$fileName);      
	// การใช้งาน
	$fileSize = ftpFileSize($conn_id,$parentDir,$nameDir,$fileName);
	if($fileSize){
		echo "File Size: $fileSize";	
	}else{
		echo "Fail";  
	}
     
    // ฟังก์ชันสำหรับหา ว่ามีไฟล์ชื่อนี้หรือไม่
    ftpIsFile($conn_id,$parentDir,$nameDir,$fileName);  
    // ตัวอย่าง  ftpIsFile($conn_id,$parentDir,$nameDir,$fileName);         
     // การใช้งาน
	 if(ftpIsFile($conn_id,$parentDir,$nameDir,$fileName)){
			echo "Success file exist"; 
	 }else{
			echo "Fail no such file";  
	 }			 
	 
    // ฟังก์ชันสำหรับอัพโหลดไฟล์
    ftpUploadFile($conn_id,$parentDir,$nameDir,$fileName,$uploadFile);     
    // ตัวอย่าง  ftpUploadFile($conn_id,$parentDir,$nameDir,$_FILES['file']['name'],$_FILES['file']['tmp_name']);        
	// การใช้งาน
	if(ftpUploadFile($conn_id,$parentDir,$nameDir,$_FILES['file']['name'],$_FILES['file']['tmp_name'])){
			echo "Success upload file complete"; 
	 }else{
			echo "Fail";  
	 }			
     
    // ฟังก์ชันสำหรับลบ ไฟล์
    ftpRemoveFile($conn_id,$parentDir,$nameDir,$fileName);      
    // ตัวอย่าง  ftpRemoveFile($conn_id,$parentDir,$nameDir,$fileName);      
	// การใช้งาน
	if(ftpRemoveFile($conn_id,$parentDir,$nameDir,$fileName)){
			echo "Success"; 
	 }else{
			echo "Fail";  
	 }		 
	 	
 
    ftpClose($conn_id);      // ปิดการติดต่อผ่าน FTP     
}   
?>   
 


กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ











URL สำหรับอ้างอิง





คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )







เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ