更新時(shí)間:2021-05-26 09:58:02 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1137次
文件下載其實(shí)說(shuō)多了就是從服務(wù)器中(你部署的項(xiàng)目中)讀取出資源文件,然后通過(guò)response返回給客戶端。其實(shí)tomcat已經(jīng)對(duì)文件上傳有很好的封裝了,我們只需要知道需要下載的文件路徑和文件字節(jié)流就能夠輕松地實(shí)現(xiàn)文件下載功能。不多說(shuō)了,直接上代碼
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("filename");
//獲取文件的絕對(duì)路徑
String path = request.getServletContext().getRealPath("WEB-INF/download/"+name);
System.out.println(path);
//設(shè)置文件的MIME類型
response.setContentType(getServletContext().getMimeType(name));
//設(shè)置響應(yīng)頭文件,標(biāo)識(shí)為文件下載類型,并附上文件的名稱
response.setHeader("Content-Disposition", "attachment;filename="+name);
//對(duì)文件進(jìn)行讀取和存貯
InputStream is = new FileInputStream(path);
OutputStream os = response.getOutputStream();
byte[] flush = new byte[1024];
int len = 0;
while((len = is.read(flush))!=-1){
os.write(flush,0,len);
os.flush();
}
is.close();
}
其中還有一種文件下載的方式,而且賊簡(jiǎn)單。就是直接以超鏈接的形式指定到你的文件,客戶端點(diǎn)擊文件之后,就會(huì)自動(dòng)下載。不過(guò)這種方式也有弊端,如果是瀏覽器識(shí)別的文件,瀏覽器會(huì)直接打開(kāi),而不會(huì)下載。代碼如下:
<body>
<a href = "文件路徑">超鏈接實(shí)現(xiàn)下載</a><br/>
<a href ="DownLoadServlet?filename=1.xls" >放假通知表!</a>
</body>
以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"文件下載Java代碼實(shí)現(xiàn)",希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為您服務(wù)。
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)