ประยุกต์ สร้าง FTP Function สำหรับการจัดการไฟล์ผ่าน FTP Protocal
10 February 2010สร้างไฟล์ 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
}
?>
บทความคนเข้าอ่านวันนี้
24 Mar 09 Database ข้อมูลจังหวัดและอำเภอในประเทศไทย อ่าน 6684 18 Oct 08 สร้างเมนูแนวนอน ด้วย CSS ไม่ต้องใช้ตารางอย่างง่าย อ่าน 4127 25 Sep 08 เริ่มต้นกับ jquery อ่าน 5443 04 Oct 08 การติดตั้ง MySQL บน Windows อ่าน 2944 31 Oct 09 ใช้งาน CSS Sprite images กับ การกำหนด CSS ของ Input form อย่างง่าย อ่าน 4332 06 May 10 สร้าง poll แบบสำรวจ ด้วย ajax ใน jQuery อย่างง่าย อ่าน 3992 22 Nov 08 ซ่อนและแสดงเนื้อหาแบบหีบเพลง (accordion) ด้วย jquery อย่างง่าย อ่าน 4636 07 Aug 10 ใช้ css แบ่งเนื้อหา เป็นคอลัมน์ พร้อมแบ่งหน้า ด้วย php อ่าน 2862 28 Oct 10 เริ่มต้นใช้งาน jquery ui autocomplete อย่างง่าย อ่าน 3194 22 Dec 10 เพิ่มลูกเล่น การแสดงข้อมูล เลื่อนสลับบน ล่าง คล้าย twitter ด้วย jQuery อ่าน 3351 02 Apr 09 สร้างรายการตัวเลือกให้กับ input text ด้วย jQuery อย่างง่าย อ่าน 4075 29 Mar 09 ประยุกต์ฟังก์ชัน substr_replace ใน PHP ตัดข้อความยาวแล้วตามด้วยเครื่องหมาย ...... อ่าน 1680 25 Sep 08 การกำหนด selectors ด้วย jQuery แบบตัวกรองพื้นฐาน อ่าน 2700 14 Mar 09 สร้าง tooltip กล่องข้อความตัวช่วยเหลือได้ง่ายด้วย jQuery อ่าน 7777 04 Jan 10 ดึงไฟล์ xml (rss) ไฟล์แบบ cross domain มาแสดงด้วย ajax ใน jQuery อย่างง่าย อ่าน 3598 24 Jun 11 แก้ปัญหา event onchange ของ input type file ไม่ทำงานทันทีใน ใน IE อ่าน 652 04 Oct 11 การแสดงข้อมูลใน iframe ตามตำแหน่งที่ต้องการด้วย css อย่างง่าย อ่าน 847 05 Nov 08 แสดงป้ายโฆษณา banner แบบสุ่ม random ด้วย ajax อย่างง่าย อ่าน 4305 25 Sep 08 การกำหนดความกว้างความสูงของ element ด้วยฟังก์ชันของ jQuery อ่าน 2437 13 Jul 10 วิธี load xml ไฟล์ และ แบ่งหน้า ด้วย php อย่างง่าย อ่าน 2775
