หลักสูตรความผิดพลาด 101
10 โมดูล
5 สัปดาห์ที่ผ่านมา

ไฟล์ในคำขอฐานข้อมูลและเซิร์ฟเวอร์

คลิกเพื่อคัดลอก

วิธีส่งไฟล์ไปยังเซิร์ฟเวอร์และบันทึกลงในฐานข้อมูล


หลังจากตรวจสอบทั้งหมดแล้ว เรามั่นใจได้ว่าผู้ใช้ได้ส่งไฟล์ในรูปแบบที่ถูกต้อง ถึงเวลาแล้วที่จะส่งไปยังเซิร์ฟเวอร์เพื่อดำเนินการต่อไป แต่ก่อนอื่นควรอธิบายที่สำคัญเกี่ยวกับหลักการทำงานกับไฟล์

ประเภทของไฟล์

คุณอาจสังเกตเห็นว่ามีไฟล์อยู่สองประเภท อันแรกคือไฟล์โมเดลที่เราเพิ่งใช้งาน ประการที่สองคือประเภทข้อมูลไฟล์ เป็นรหัสที่ง่ายต่อการจัดเก็บในฐานข้อมูลและง่ายต่อการค้นหาแบบจำลองที่สมบูรณ์ เมื่อออกแบบโมเดลฐานข้อมูล จะเป็นประเภทที่สองที่ใช้ สามารถใช้ในลักษณะเดียวกับประเภทข้อมูลอื่นๆ (สตริง, จำนวนเต็ม และอื่นๆ) แต่ในขณะเดียวกัน เราทราบอยู่เสมอว่าแบบจำลองทั้งหมดนั้นซ่อนอยู่หลัง ID ของมัน


เมื่อเราได้รับไฟล์จาก Filepicker หรือบล็อก Select Files นั้นจะแสดงเป็นโมเดล แต่ยังไม่มี ID เนื่องจากไฟล์ยังไม่ได้บันทึกในฐานข้อมูลของเซิร์ฟเวอร์ ในการทำเช่นนี้ คุณต้องทำการ Server request POST /_files/ ไปยังปลายทาง ซึ่งถูกสร้างขึ้นโดยอัตโนมัติล่วงหน้า หลังจากนี้ ไฟล์จะถูกเขียนลงในฐานข้อมูล และโมเดลจะได้รับ ID และสามารถใช้งานได้อย่างสมบูรณ์

URL สำหรับรูปภาพ

ใช้ Swagger เพื่อดูว่ามีจุดสิ้นสุดของไฟล์ใดบ้าง เราต้องการหนึ่งในนั้นตอนนี้ หากต้องการใช้ไฟล์เป็นรูปภาพในส่วนหน้า คุณต้องได้รับ URL แบบเต็มของไฟล์ที่กำหนด งานนี้แก้ไขได้โดย GET /_files/:id/download/ endpoint เมื่อทราบรหัสไฟล์ คุณก็สามารถใช้รหัสดังกล่าวและรับ URL ของไฟล์ที่แน่นอนได้

เราจำเป็นต้องขยายโมเดลที่ได้รับจาก Server request POST /_files/ บล็อกและค้นหารหัสไฟล์ หลังจากนั้น ID จะต้องเปลี่ยนเป็นสตริงโดยใช้บล็อก To String ลองใช้ผลลัพธ์นี้เพื่อรวบรวม URL รูปภาพสุดท้าย (เหมือนกับ GET request /_files/:id/download/ ) เมื่อต้องการทำเช่นนี้ เราใช้บล็อกการต่อสตริง Concat Strings (Multiple) ส่วนแรกจะเป็น " /api/_files/ " ส่วนที่สองจะเป็นรหัสไฟล์ และส่วนที่สามจะเป็น " /download/ "

ยังคงเป็นเพียงการส่ง URL ที่เป็นผลลัพธ์ไปยังบล็อก Image มันถูกสร้างขึ้นในขั้นตอนการออกแบบ แต่เริ่มแรกมีต้นขั้วง่ายๆเป็นภาพ ตอนนี้เราสามารถแก้ไขได้ ในการดำเนินการนี้ ให้ใช้บล็อก Image Update Properties และตั้งค่า URL เป็นรูปภาพ


Was this article helpful?
ยังคงมองหาคำตอบ?