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

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: วิธีการ ปลด permission ไฟล์ที่อัพโหลดบน ubuntu ด้วยการ chmod folder 777 ใน phpbb

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

โดย Ittichai_chupol » 07/01/2020 5:50 pm

สำหรับผู้ที่พัฒนา 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 928 times
ตัวอย่างการอัพโหลดโดยการโดยใช้ฟังชั่น chmod() โดยถ้าเป็นกรณี ปลด permission

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

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

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

ข้างบน