ประยุกต์ สร้าง FTP Function สำหรับการจัดการไฟล์ผ่าน FTP Protocal
สร้างไฟล์ 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
}
?>

