ในการพัฒนาเว็บมักจำเป็นต้องพัฒนาโมดูล "ดาวน์โหลด" นี่คือตัวอย่างง่ายๆ
ทางฝั่งเซิร์ฟเวอร์ใช้ Java เพื่อพัฒนา:
@RequestMapping (value = "download.html", method = requestMethod.get) โมฆะสาธารณะดาวน์โหลด (String ResourceId, httpservletRequest Request, การตอบกลับ httpservletResponse) {response.setContentType ("charset = utf-8"); ไฟล์ไฟล์ = ไฟล์ใหม่ (พา ธ ); Response.SetheAder ("เนื้อหา-การจัดสรร", "สิ่งที่แนบมา; ชื่อไฟล์ = a"); bufferedInputStream bis = null; bufferedOutputStream bos = null; OutputStream fos = null; InputStream FIS = NULL; ลอง {fis = new FileInputStream (file.getAbsolutePath ()); bis = ใหม่ bufferedInputStream (FIs); fos = response.getOutputStream (); BOS = ใหม่ bufferedOutputStream (FOS); int bytesread = 0; ไบต์ [] บัฟเฟอร์ = ไบต์ใหม่ [5 * 1024]; ในขณะที่ ((bytesread = bis.read (บัฟเฟอร์))! = -1) {bos.write (บัฟเฟอร์, 0, bytesRead); } bos.flush (); } catch (e e) {} ในที่สุด {ลอง {bis.close (); bos.close (); fos.close (); fis.close (); } catch (ioexception e) {e.printstacktrace (); -เมื่อเราขอที่อยู่นี้ที่ส่วนหน้าเซิร์ฟเวอร์จะพบไฟล์ก่อนตั้งค่าส่วนหัวการตอบกลับแล้วส่งออกไปยังด้านเบราว์เซอร์ผ่านสตรีม
หากเบราว์เซอร์พบในส่วนหัวว่าเนื้อหาของการตอบกลับเป็นไฟล์สตรีมมันจะเรียกว่าบันทึกเป็นหน้าต่างโดยอัตโนมัติเพื่อให้ผู้ใช้บันทึกการดาวน์โหลด
กุญแจสำคัญที่นี่คือคุณสมบัติส่วนหัวของการกระจายเนื้อหา การกระจายเนื้อหาเป็นส่วนขยายของโปรโตคอล MIME เพื่อระบุวิธีการให้ไคลเอนต์แสดงไฟล์ไฟล์แนบ
สามารถตั้งค่าเป็นสองค่า:
อินไลน์ // เปิดออนไลน์
ไฟล์แนบ // ดาวน์โหลดเป็นไฟล์แนบ
ที่นี่เราตั้งค่าเป็นไฟล์แนบดังนั้นจึงสามารถรับรู้ได้ว่าเป็นไฟล์แนบและดาวน์โหลด
ข้างต้นพูดถึงวิธีการเขียนไปยังฝั่งเซิร์ฟเวอร์และการพูดคุยต่อไปนี้เกี่ยวกับวิธีการขอส่วนหน้า
มีสามวิธีในการขอ front-end:
1. รูปแบบ
<form action = 'download.html' method = 'post'> <input type = 'ส่ง'/> </form>
2. เอฟเฟกต์
var iframe = "<iframe style = 'display: none' src = 'download.html'> </iframe>" body.append (iframe);
เมื่อ iframe ถูกผนวกเข้ากับร่างกายลิงค์ดาวน์โหลดจะถูกร้องขอโดยอัตโนมัติ
3. เปิด
window.open ("download.html");