is_upload

วิธีการใช้ฟังก์ชัน is_upload

ฟังก์ชัน is_upload ใช้สำหรับอัปโหลดไฟล์จากอินพุตในรูปแบบของ $_FILES โดยมีการตั้งค่าชื่อไฟล์, โฟลเดอร์ย่อย, และไดเรกทอรีที่ต้องการเก็บไฟล์

  • พารามิเตอร์

    • $FILES (required) - อาร์เรย์ข้อมูลไฟล์ที่ส่งมาจากอินพุต เช่น $_FILES['file']

    • $name (optional) - ชื่อไฟล์ที่ต้องการตั้ง หากไม่ระบุจะสร้างชื่อ UUID อัตโนมัติ

    • $subdir (optional) - โฟลเดอร์ย่อยภายในไดเรกทอรีที่กำหนดเพื่อเก็บไฟล์

    • $dir (optional) - ไดเรกทอรีหลักที่ต้องการเก็บไฟล์ หากไม่ระบุจะใช้ไดเรกทอรี /uploads ในโปรเจกต์เป็นค่าเริ่มต้น

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

  1. อัปโหลดไฟล์ด้วยการตั้งชื่อไฟล์อัตโนมัติและใช้ไดเรกทอรีค่าเริ่มต้น

    $result = $_PNA->is_upload($_FILES['file']);
    print_r($result);

    ผลลัพธ์:

    Array
    (
        [status] => true
        [main] => /path/to/project/uploads
        [path] => /path/to/project/uploads/subdir/
        [name] => generated_uuid.extension
        [full_path] => https://example.com/uploads/subdir/generated_uuid.extension
    )
  2. อัปโหลดไฟล์ด้วยชื่อไฟล์และโฟลเดอร์ย่อยที่กำหนดเอง

    $result = $_PNA->is_upload($_FILES['file'], 'custom_name', 'images');
    print_r($result);

    ผลลัพธ์:

    Array
    (
        [status] => true
        [main] => /path/to/project/uploads
        [path] => /path/to/project/uploads/images/
        [name] => custom_name.extension
        [full_path] => https://example.com/uploads/images/custom_name.extension
    )
  3. กรณีที่ไม่มีไฟล์ถูกอัปโหลด

    $result = $_PNA->is_upload($_FILES['file']);
    print_r($result);

    ผลลัพธ์:

    Array
    (
        [status] => false
        [msg] => Not Files.
    )

ผลลัพธ์ที่ได้:

  • ถ้าอัปโหลดสำเร็จ: จะได้อาร์เรย์ที่ประกอบด้วยสถานะ (status), ที่ตั้งไดเรกทอรีหลัก (main), ที่ตั้งโฟลเดอร์ (path), ชื่อไฟล์ (name), และ URL เต็มของไฟล์ (full_path)

  • ถ้าอัปโหลดไม่สำเร็จหรือไม่มีไฟล์: จะส่งกลับสถานะ false พร้อมข้อความ "Not Files."

หมายเหตุ: ฟังก์ชันนี้จะสร้างโฟลเดอร์ใหม่อัตโนมัติหากโฟลเดอร์ที่ระบุไม่มีอยู่

Last updated