ftp upload

เคยใช้งานการ upload ด้วยฟังก์ชั่น copy กันมาแล้ว มาดูการอัปโหลด โดยใช้ฟังก์ชั่นทาง ftp ของ PHP ดูบ้าง

ในการใช้งาน ftp Server จะต้องรองรับการใช้งานผ่าน ftp ด้วยนะครับ ถ้าทำการทดสอบบน localhost ปกติจะทดสอบไม่ได้ เนื่องจากปกติแล้ว Appserver จะไม่เปิด ftp ไว้ให้ ให้ทำการเปิดใช้งาน ftp และ กำหนดค่าก่อนการทดสอบครับ

<?
if (isset($_FILES[fileupload])) {
  
  //รายการสำหรับ ftp
  $config[ftp_url] = "ftp.xxx.com";
  $config[ftp_user] = "username";
  $config[ftp_password] = "password";
  //ไดเร็คทอรี่ ที่เก็บไฟล์ uploads ของ website รวม เส้นทางทั้งหมด ต้องมี / ปิดท้าย
  $config[webdir_thumb] = "/domains/xxx.com/public_html/uploads/";
  
  //ไฟล์ต้นทาง
  $local_file = $_FILES[fileupload][tmp_name];
  //ไฟล์ปลายทาง
  $remote_filename = $_FILES[fileupload][name];
  $remote_file = $config[webdir_thumb].$remote_filename;
  
  echo $remote_file;

  //เชื่อมต่อ ftp
  $conn_id = ftp_connect($config[ftp_url]);
  //login เข้า ftp
  $login_result = ftp_login($conn_id, $config[ftp_user], $config[ftp_password]);
  //อัปโหลดไฟล์ไปยังปลายทาง
  $upload=ftp_put($conn_id, $remote_file, $local_file, FTP_BINARY);
  //หยุดการเชื่อมต่อกับ ftp
  ftp_close($conn_id);

  if ($upload) { //การ upload สำเร็จ
    echo "อัปโหลด $remote_filename เรียบร้อย";
  } else echo "ไม่สามารถ อัปโหลด $remote_filename ได้";
} else {
?>
<form name="form1" method="post" enctype="multipart/form-data" action="index.php">
<input type="file" name="fileupload" /><input type="submit" name="submit" value="Upload" />
</form>
<?
}
?>

ส่วนสีแดงคือส่วนที่ต้องกำหนดให้ถูกต้องตามเว็บไซต์นะครับ และ เว็บไซต์ต้องรองรับการใช้งาน ftp ด้วย
^