A-AA+then

เคยใช้งานการ 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 ด้วย

Relate

^