รับทําเว็บไซต์ รับทําseo
บทความที่น่าสนใจ

บทความ ที่น่าสนใจ

ฟังก์ชั่น ftp ใน PHP กับการอัพโหลดไฟล์ใหญ่ๆ

    พอดีช่วงนี้มีโอกาสได้ใช้ฟังก์ชั่น ftp ใน PHP จึงเอามาบอกต่อกับเพื่อนๆ ครับ เพื่อนหลายๆ คนอาจเคยเจอปัญหาเดี่ยวกับผมแบบว่า ต้องเขียนโปรแกรมอัพไฟล์ ซึ่งถ้าเป็นไฟล์รูปทั่วๆ ไปมันก็เป็นเรื่องหมู่ๆ เลยใช่ไหมครับ แต่นี้ไฟล์มันขนาดเป็น MB หรือหลาย MB นี้สิ เอะแล้วเราจะทำยังไงดี ซึงวิธีหนึ่งที่ผมไปพบมาก็คือใน  PHP มีฟังก์ชั่นตัวหนึ่งครับ คือ ฟังก์ชั่น ftp ที่สามารถช่วยเราเรื่องนี้ได้ มาดูวิธีการใช้กันครับ


    ขั้นตอน 1 สร้างฟอร์มอัพโหลดขึ้นมา ในตัวอย่างนี้จะอัพได้ที่ละหนึ่งไฟล์
    code:

    <?
     <form name=”form1″ method=”post” action=”" enctype=”multipart/form-data”>
       <input type=”file” name=”file”>
       <input type=”submit” name=”Submit” value=”Upload now”>
     </form>
    ?>

    ตัวอย่างโค๊ดจะสั่งให้ action ภายในหน้าเดิม
     
    ขั้นตอนที่ 2 เพิ่มโค๊ดที่ใช้อัพโหลด
    code :
     
    <?php

    if($_POST[Submit]){
     set_time_limit(3000);
     
     //set up basic connection
     $ftp_server = “filmier.com”;
     $ftp_user_name = “filmier“;
     $ftp_user_pass = “filmierfilmier”;

     $destination_file = $_FILES['file']['name'];
     $source_file = $_FILES['file']['tmp_name'];
     $size_file=$_FILES['file']['size'];

     $conn_id = ftp_connect($ftp_server);
      
    /*
    จากตรงนี้ $conn_id = ftp_connect($ftp_server); สามารถ เซ้ต port ของ ftp ได้ ถ้าไม่ใส่จะมีค่า เท่ากับ 21 แต่ถ้า ftp ใช้ port อื่น ในการเข้า สามารถเซต เป็น port อื่นได้
    เช่น
    $conn_id = ftp_connect($ftp_server,33);
    */

     // login with username and password
     $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 

     //change the directory to somedir

     ftp_chdir($conn_id,”htdocs/upload/store_file”);
     
     // check connection  
     
     if ((!$conn_id) || (!$login_result)) {
         echo “FTP connection has failed!”;
         echo “Attempted to connect to $ftp_server for user $ftp_user_name”;
         exit;
     } else {
         echo “Connected to $ftp_server, for user $ftp_user_name<br/>”;   
      }      
     // upload the file  
     $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);    

     // check upload status  
     if (!$upload) {
         echo “FTP upload has failed!”;
      }    

    // close the FTP stream  
    ftp_close($conn_id); 

    ?>
     
    จากที่ทดสอบดู อัพโหลดได้ไม่เกิน 200 M นะ ใช้เวลาค่อนข้างนาน ขึ้นอยู่กับ Server อีกที Note เพิ่มเติมคำสั่งลบไฟล์ผ่าน FTP ใน PHP ครับ

    $file = 'public_html/old.txt';

    //delete $file
    if (ftp_delete($conn_id, $file)) {
     echo "$file deleted successfuln";
    } else {
     echo "could not delete $filen";
    }