พอดีช่วงนี้มีโอกาสได้ใช้ฟังก์ชั่น 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";
}