วิธีการ ปลด permission ไฟล์ที่อัพโหลดบน ubuntu ด้วยการ chmod folder 777 ใน phpbb

PHP Knowledge เป็น บอร์ดรวามความรู้ php เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
Ittichai_chupol
PHP VIP Members
PHP VIP Members
โพสต์: 5410
ลงทะเบียนเมื่อ: 19/09/2018 10:33 am

วิธีการ ปลด permission ไฟล์ที่อัพโหลดบน ubuntu ด้วยการ chmod folder 777 ใน phpbb

โพสต์ที่ยังไม่ได้อ่าน โดย Ittichai_chupol »

สำหรับผู้ที่พัฒนา Extension บนเว็บบอร์ด phpbb หรือ การสร้างระบบการทำงานเกี่ยวกับการอัพโหลดไฟล์ php โดยการพัฒนาบนระบบปฏิบัติการ ubuntu นั้นจะพบปัญหาเกี่ยวกับเรื่องของ ไฟล์ที่อัพเข้ามานั้นมีการติดสิทธิ์ permission ทำให้ไม่สามารถที่นำไฟล์นั้นมาเปิดใช้งาน หรือ หรือการจะนำไฟล์นั้นมาใช้งานต่อในขั้นตอนถัดมาก็ตาม ซึ่งถ้าหากที่จะปลด permission ของ ไฟล์ ไฟล์นนั้นโดยปกติจะต้องเปิดโปรแกรม terminal เพื่อที่จะ chmod folder ที่เกี็บไฟล์นั้นก่อน ซึ่งนอกจะเป็นการเพิ่มขั้นตอนการทำงาน แล้วจะเป็นการยากถ้าหากเป็นส่วนที่จะต้องมีผู้อื่นใช้งานร่วมกันหลายๆคน แต่ทั้งนี้ใน phpbb ก็มีฟังชั่นสำหรับ การ chmod มาเป็นฟั่งชั่น มาตรฐานอยู่แล้ว ซึ่งผู้พัฒนานั้นสามารถที่จะนำมาใช้งานได้เลย โดยขั้นตอนการใช้งาน chmod() มีดังนี้น

1.ลักษณะการรับค่าของฟังชั่น มีดังนี้

โค้ด: เลือกทั้งหมด

function chmod(string $filename, int $mode): bool {}
- จะเห็นว่าในฟั่งชั่น chmod() จะมีการรับค่า 2 ค่า ดังนั้น การส่งค่า ก็จะต้องมีการส่งค่า 2 ค่า เช่นกัน

2.วิธีการส่งค่า โดยถ้าหากเป็นกรณีที่มีการอัพไฟล์เข้ามานั้น จะต้องนำมาต่อในส่งที่เป็นการอัพโหลดไฟล์ไปเก็บในโฟลเดอร์ที่กำหนดไว้ได้สมบูรณืแล้ว จึงค่อยมีการใช้งาน ฟังชั่น chmod()

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

$inputFileName = '../images/id_no/phpnsCR8t.xlsx';

โค้ด: เลือกทั้งหมด

chmod($inputFileName, 0777);   
-- ค่าเเรกที่ส่งไปนั้นก็คือค่าของไฟล์ โดยจะต้องมีการใส่ตำแหน่งที่จัดเก้บไฟล์ได้ด้วย
-- ค่าที่สอง ก็คือ mode ที่จะต้องการ chmod โดยถ้าเป็นกรณี ปลด permission นั้นจะต้องเป็น 0777

กรณีที่นำไปใช้งานจริง

โค้ด: เลือกทั้งหมด


            $upload_file = $request->file('image_pay');  //รับค่าไฟล์ที่อัพโหลด
            $tmp_file = $upload_file['tmp_name'];
            $name = $upload_file['name'];
            preg_match('/(.*)\/(.*)/', $tmp_file, $output_array); 
            $tmp_file1 = str_replace($output_array['1'], '../images/id_no', $tmp_file); //ปรับเปลี่ยนตำแหน่งการจัดเก็บไฟล์
            copy($upload_file['tmp_name'], $tmp_file1 . '.xlsx'); //เพิ่มชนิดให้กับไฟล์
            $inputFileName = $tmp_file1.".xlsx";//สร้างตัวแปลขึ้นมาเพื่อเก็บค่าตำแหน่งของไฟล์
            chmod($inputFileName, 0777); // chmod โดยถ้าเป็นกรณี ปลด permission

ตัวอย่างการอัพโหลดโดยการไม่ใช้ฟังชั่น chmod() โดยถ้าเป็นกรณี ปลด permission
PHP Knowledge-1.png
PHP Knowledge-1.png (18.3 KiB) Viewed 923 times
ตัวอย่างการอัพโหลดโดยการโดยใช้ฟังชั่น chmod() โดยถ้าเป็นกรณี ปลด permission

PHP Knowledge-2.png
PHP Knowledge-2.png (15.35 KiB) Viewed 923 times

บทความที่เกี่ยวข้อง

วิธีการเขียนโคดเพื่ออัพโหลดไฟล์ เข้าไปในโฟลเดอร์ที่ต้องการพร้อมกับข้อมูลของไฟล์ลงฐานข้อมูล โดยใช้ phpbb
การสร้าง Extension ใน phpbb
การสร้าง controller สำหรับ phpbb
ขอให้วันนี้เป็นวันที่ดี
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 59