Struts2 จัดเตรียมประเภทผลลัพธ์สตรีมซึ่งใช้โดยเฉพาะเพื่อรองรับการดาวน์โหลดไฟล์ ต้องใช้คุณสมบัติ 4 ต่อไปนี้เพื่อระบุผลลัพธ์ของการกำหนดค่าประเภทสตรีม
ContentType: ระบุประเภทไฟล์ของไฟล์ที่ดาวน์โหลด
InputName: ระบุสตรีมอินพุตรายการของไฟล์ที่ดาวน์โหลด
ContentDisposition: ระบุชื่อไฟล์ที่ดาวน์โหลด
Buffersize: ระบุขนาดบัฟเฟอร์เมื่อดาวน์โหลดไฟล์
ตัวอย่างดาวน์โหลดไฟล์ struts2:
1. การดำเนินการดาวน์โหลดไฟล์:
/** * คำอธิบาย: การดาวน์โหลดไฟล์ควบคุม struts2 * ผู้แต่ง: Eleven * วันที่: 2018/1/24 10:39 */คลาสสาธารณะ FileAction ขยายการกระทำ {// ตัวแปรสมาชิกนี้สอดคล้องกับค่าของ InputName ใน struts.xml // ไฟล์ดาวน์โหลดสตริงสาธารณะดาวน์โหลด () {// ระบุตำแหน่งของทรัพยากรที่ดาวน์โหลดมาและส่งคืนกระแสสตริงสตรีมอินพุตที่สอดคล้องกัน = "/web-inf/images/lib.zip"; // ใช้ getResourceasstream () เพื่อแปลงไฟล์ที่ระบุเป็นอินพุตสตรีมที่สอดคล้องกัน targetFile = servletActionContext.getServletContext (). getResourceasstream (พา ธ ); กลับมาประสบความสำเร็จ } // ให้วิธีการรับ public inputstream getTargetFile () {return targetFile; -ในการดาวน์โหลดไฟล์คุณต้องมีทรัพยากรไฟล์ที่ดาวน์โหลดมาก่อน ที่นี่ฉันวางไฟล์ที่ดาวน์โหลดไว้ภายใต้เส้นทาง Web-Inf/Images ของโครงการ คุณสามารถทำได้ตามความต้องการของคุณเองจากนั้นใช้เมธอด GetResourceAsStream () ที่จัดทำโดย ServletContext เพื่อส่งคืนสตรีมอินพุตที่สอดคล้องกับไฟล์ที่ระบุ
2. กำหนดค่า struts.xml
<? XML เวอร์ชัน = "1.0" การเข้ารหัส = "UTF-8"?> <! Doctype struts สาธารณะ "-// Apache Software Foundation // dtd struts การกำหนดค่า 2.3 // en" "http://struts.apache.org/dtds/struts-2.3.dtd" value = "false" /> <constant name = "struts.devmode" value = "true" /> <package name = "default" namespace = " /" Extref = "struts-default"> <action name = "file_*" method = "{1}"> <! name = "contentType"> แอปพลิเคชัน/zip </param> <!-image/jpg-> <!-ระบุชื่อของอินพุตสตรีมที่ส่งคืนไฟล์ที่ดาวน์โหลดในการกระทำ-> <param name = "inputName"> targetFile </param> <param name = "contentDisposition"> name = "inputName"> targetFile </param> <param name = "contentDisposition"> filename = "aaa.zip" </param> <!-ระบุขนาดบัฟเฟอร์ของไฟล์ที่ดาวน์โหลด-> <param name = "buffersize"> 4096ป้อนเส้นทางการเข้าถึงสำหรับการดาวน์โหลดไฟล์ที่เกี่ยวข้องในแถบที่อยู่เบราว์เซอร์เช่น http: // localhost: 8080/demo/file_download เพื่อดาวน์โหลดไฟล์ -
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น