Tags:
Forums: 

คือ ว่า ผมไม่เข้าใจวิธีการอัพโหลดไฟล์จาก html อ่ะครับ ถ้าผมมีโค้ดอัพไฟล์ ของ html แบบนี้อ่าครับ

File:

คำถาม
-ผมจะเพิ่มโค้ดhtmlตรงไหน เพราะมันยังไม่สมบูรณ์ คือปุ่มuploadมันอัพไม่ได้เพราะยังไม่มีแอคชั่นอ่าครับ
-เราจะเขียนโค้ดในdjango ของเรายังไงครับ(model,view)

ถ้ามาเป็นโค้ดเลยก้ได้ครับ ขอบคุณมากๆสำหรับคนที่ตอบครับ

Get latest news from Blognone
By: justless
iPhone
on 8 March 2011 - 23:28 #267065

html
body

File: input type="file" name="filename"
input type="submit" value="Upload"
/form
/body
/html

คือโค้ดhtmlมันแสดงไม่ได้อ่ะครับ ประมาณเนี่ย

By: chiwawa on 9 March 2011 - 10:35 #267165
chiwawa's picture

view เขียนประมาณนี้ครับ
http://docs.djangoproject.com/en/1.2/topics/http/file-uploads/

html ประมาณนี้ครับ
http://docs.djangoproject.com/en/1.2/ref/forms/api/#binding-uploaded-files

Django v1.2 ผมยังไม่ได้ลองเขียนนะครับ

By: justless
iPhone
on 10 March 2011 - 04:32 #267442

ขอบคุณมากครับ

By: justless
iPhone
on 10 March 2011 - 04:35 #267443

ขอภาษาไทยได้ไหมครับ ผมก็ทำไม่ได้อยู่ดี อธิบายคร่าวๆก็ได้ครับ

By: chiwawa on 10 March 2011 - 10:52 #267552
chiwawa's picture

ความสามารถ อังกฤษผมก็อ่อนแอเหมือนกัน เพียงแต่อ่านเจอมา เลยบอกต่อ
ขึ้นอยู่กับความสามารถท่านแล้วหละ

By: chiwawa on 10 March 2011 - 11:25 #267565
chiwawa's picture

model
ไม่ได้ใช้

templete
คุณต้องรู้การทำงาน กับ Form ก่อนนะครับ
http://docs.djangoproject.com/en/1.2/topics/forms/
การทำงานของ form ใน templete
ดูที่หัวข้อ
Looping over the form's fields
นำโค้ดในหัวข้อนั้น เขียนใน templete ของคุณ
แล้วก็เปลี่ยน ส่วนบนของโค้ดเป็น

<

form enctype="multipart/form-data" method="post" action="/upload_file/">

view
คุณ นำ code 3 ส่วนแรกไปใส่ใน view ของคุณ
http://docs.djangoproject.com/en/1.2/topics/http/file-uploads/
ในส่วนที่ 3
destination = open('some/file/name.txt', 'wb+') ตรงนี้คุณต้องกำหนดที่อยู่ของไฟล์เอง

url คงทำได้นะครับ

ทั้งหมด ผมยังไม่ได้เขียนะครับ ที่เหลือก็จัดการเองนะครับได้แค่นี้ครับ

By: justless
iPhone
on 12 March 2011 - 15:13 #268185

ขอบคุณมากครับ

By: justless
iPhone
on 12 March 2011 - 19:19 #268214

ในโค้ดส่วนที่ 3 destination = open('some/file/name.txt', 'wb+') ผมหาวิธีใช้ i/o ไฟล์ไม่เจออ่ะครับ พอผมเอาไปลอง แล้วอัพโหลด เหมือนกับว่ามันเป็นการเป็นการเปิดไฟล์ครับ พอเราอัพโหลดมันก็เซฟทับไฟลเดิม

By: chiwawa on 14 March 2011 - 09:56 #268525
chiwawa's picture

พอเราอัพโหลดมันก็เซฟทับไฟลเดิม <-- ไม่เข้าใจ

ต้นทาง A.xxx ปลายทาง C.xxx
ต้นทาง B.xxx ปลายทาง C.xxx
ทับแน่ ยกเว้น ปลายทางคนละ folder

ต้นทาง A.xxx ปลายทาง A.xxx
ต้นทาง B.xxx ปลายทาง B.xxx
ไม่ทับทับแน่ ยกเว้น อัพไฟล์เดิม

ผมว่าทำการตรวจสอบไฟล์ก่อน ถ้ามีชื่อซ้ำให้ตั้งชื่อใหม่ดีกว่า
หรือไม่ก็ เก็บชื่อ ไฟล์ ไว้ในต้นทาง กับชื่อไฟล์ปลายทาง( ระบบสุ่มตั้งชื่อ) ลงใน DB
จะได้ไม่ซ้ำกัน คงนึกภาพออกนะครับ