enctype="multipart/form-data คืออะไรค่ะ

เริ่มโดย hacker, 03 กรกฎาคม 2009, 17:08:34

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

hacker

enctype="multipart/form-data


รูปแบบเต็ม
<form method="post" enctype="multipart/form-data">
<input name="op" type="hidden" value="AddProperty" />

mr.sit

ปกติฟอร์มส่งข้อมูล จะส่งข้อมูลประเภท text ได้อย่างเดียว

การระบุ enctype="multipart/form-data" เป็นการอนุญาตให้ฟอร์มส่งข้อมูลได้หลายประเภทพร้อมกัน เช่น ข้อความและรูปภาพ (อัพโหลดรูป)

ชื่อก็บอกอยู่แล้วว่า multi :)

hacker

แล้วมันจะส่งค่าไปเก็บไว้ในฐานข้อมูลเลยหรือเปล่าค่ะถ้าไม่ แล้วไฟล์ที่ รับของ enctype="multipart/form-data  เขียนในรูปแบบใดค่ะ

สเร็น

การอัพโหลดไฟล์ ไปยัง server ด้วย php
สิ่งที่ต้องดู อย่าง แรก คือ ดู ว่า server ที่เราใช้ อยู่ อนุญาติ ให้ อัพโหลดไฟล์ได้หรอืเปล่า
ด้วย phpinfo() ;
หาข้อความ On อยู่ ก็ ok ครับ upload ได้
ต่อ ไป ดู ต่อว่า จะ upload ได้ขนาด สูงสุดเท่าไร
หาข้อความ upload_max_filesize **M คือ ขนาดไฟล์ ที่เราสามารถ upload ได้


function ที่ใช้ในการ Upload file
1.copy()
2.move_uploaded_file()
ทั้ง 2 function นี้ใช้ ในการ อัพโหลดไฟล์ ขึ้น server ได้เหมือน กัน
การให้ function ทั้ง 2 อันนี้คือ เรา ต้องไป ก๊อบปี้ ไฟล์ จาก tmp ของ server มาไว้ ใน foder ของเรา ตาต้องการ ดัง นั้น parameter ของทั้ง 2 function นี้ คือ
bool copy ( string source, string dest ) copy ไฟล์ ไปยังตำแหน่งที่ต้องการ จะคือ ค่าจริง ถ้า ทำสำเร็จ
bool move_uploaded_file ( string filename, string destination ) copy ไฟล์ ไปยังตำแหน่งที่ต้องการ โดย จะเช็ค ว่า ไฟล์ ที่ต้องการ copy นั้นเป็นไฟล์ที่ อัพโหลด ด้วย HTTP POST ขึ้นมาหรือไม่
ถ้าเราเลือกใช้ function copy ให้ ได้ ไฟล์ ที่ เรา upload จริงๆ ต้อง ทำดังนี้


--------------------------------------------------------------------------------


if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
copy($_FILES['userfile']['tmp_name'], "/place/to/put/uploaded/file");
}
ถ้า ใช้ move_upload_file() ก็
move_uploaded_file($_FILES['userfile']['tmp_name'], "/place/to/put/uploaded/file");


คงจะเห็นความแตกต่าง และเลือกใช้ ให้เหมาะ สมนะครับ



เครดิต mindphp.com

thenetxx

^__^ เข้ามาดู hacker งงเรื่อง encryption  :'(
Develop site but can't develop life
ASIA

moonoi

urlencoded ลองนึกถึง GET Method ครับ
จะส่งข้อมูลแบบนั้นเลยครับ แค่อยู่ในรูปแบบ POST Method
เช่น a=1&b=1&.....
จึงไม่รองรับการส่งไฟล์ผ่านรูปแบบนี้ครับ (นึกถึงเนื้อหาในไฟล์ที่จะส่ง)

multipart จะเป็นการแบ่งข้อมูลเป็นส่วนๆครับ
เช่น
----------------------------------------
name=a
1
----------------------------------------
name=myfile.txt
size=514
CONTENT HERE
----------------------------------------

ลืมไปหมด อาจจะผิดพลาดบ้างนะครับ

ttong

อ้างถึงจาก: hacker ใน 03 กรกฎาคม 2009, 18:56:59
แล้วมันจะส่งค่าไปเก็บไว้ในฐานข้อมูลเลยหรือเปล่าค่ะถ้าไม่ แล้วไฟล์ที่ รับของ enctype="multipart/form-data  เขียนในรูปแบบใดค่ะ

มันจะไม่เก็บลงในฐานข้อมูลเลยครับ

แต่มันจะเก็บใน temp ชั่วคราวก่อน

แล้วเราก็ใช้ $_FILE รับค่าต่างๆ มา เพื่อนำมาบันทึกลงใน folder หรือ database อีกที

$attach=$_FILES['image']['tmp_name'];          // ที่ที่รูปถูกเก็บไว้
$attach_name=$_FILES['image']['name'];        // ชื่อของรูปที่รับมา
$attach_size=$_FILES['image']['size'];            // ขนาดของรูปที่รับมา
$attach_type=$_FILES['image']['type'];           // ประเภทของรูปที่รับมา

ผิดพลาดขออภัย

Taew2011