ประยุกต์ สร้าง FTP Function สำหรับการจัดการไฟล์ผ่าน FTP Protocal
เขียนเมื่อ 13 ปีก่อน โดย Ninenik Narkdeephp ftp ftp function
คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ php ftp ftp function
UPDATE! อัพเดทล่าสุด 03-03-2019
.
.
ไปที่ Copy
เนื้อหานี้ เราจะสร้าง 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 สำหรับอ้างอิง
Top
Copy
ขอบคุณทุกการสนับสนุน
![]()