Friday, August 15, 2008

asp.net connect upload FTP

ในเรื่องการ upload ไฟล์ หลายคน อาจจะเจอปัญหา การ upload ไฟล์ ขนาดใหญ่มากๆ ซึ่ง หากเราใช้ asp.net ปกติ upload ไฟล์ขนาดใหญ่ จะต้องทำการ เซ็ทค่า ให้สามารถ upload ไฟล์ขนาดใหญ่ได้เสียก่อน ไม่อย่างนั้น จะเกิดการ timeout ขึ้น การ เซ็ทค่า เราอาจจะทำจาก web.config ได้ดังนี้
ซึ่งค่าปกติ ที่กำหนดไว้ โดยประมาณคือ 4M หรือ ขนาด maxRequestLength = 4096 ซึ่งเรา
จากการ upload แบบธรรมดาที่ได้กล่าวไปนั้นจะเป็นการ upload โดยผ่าน HTTP เต็มที่ของไฟล์ ก็คงไม่สามารถ upload ไฟล์ ขนาดเป็นร้อยM ได้
ดังนั้นวิธีที่ดีที่สุดสำหรับการ upload ไฟล์ ขนาดใหญ่มากๆ ด้วย asp.net จึงจำเป็นต้องใช้ protocal FTP สำหรับ รับส่งข้อมูลโดยตรง
สำหรับการใช้ asp.net ติดต่อไปยัง FTP เพื่อ ทำการ Transfer Data ผ่าน Protocal FTP นั้น เราสามารถมารถทำได้ สำหรับในตัวอย่างบทความนี้ จะเป็นการใช้ asp.net by C# ในการเขียน Class เพื่อติดต่อ FTP ไปยัง host แล้วทำการ upload ไฟล์ ขึ้นไปนะครับ
ขั้นแรก ที่ project ให้ add new ITEM Class ขึ้นมา จากนั้นก็ทำการสร้าง class namespace FTP

สามารถดาวน์โหลด class FTPclient ได้จากที่นี่

เมื่อได้ Class Namespace สำหรับ Ftpclient เรียบร้อยแล้ว ต่อไปจะเป็นการ สร้างโคดสำหรับเรียกใช้งาน class namespace ftpต่อมา Addnew item สร้างไฟล์ aspx ปกติ แล้วสร้างฟอร์ม upload ไฟล์

โคดทั้งหมด สามารถดาวน์โหลดได้ ที่ link ด้านบนครับ

เมื่อดาวน์โหลดไฟล์ทั้งหมดไปแล้ว ในหน้า CS จะมีตัวแปร FTPhost,FTPuser,FTPpass อย่าลืมระบุค่าของ ftp server ลงไปด้วยนะครับ

No comments: