JavaWeb文件下載功能實例代碼
在工作中遇到的一個下載文件的功能,自己將其抽取出來,代碼簡單,希望能幫到大家,好了,話不多說,上代碼!
public void downloadFile(File file, String downName, HttpServletRequest request, HttpServletResponse response) {
OutputStream out = null;
FileInputStream fin = null;
BufferedInputStream bin = null;
try {
if (file.exists()) {
String finalFileName = null;
String agent = request.getHeader("User-Agent");
boolean isMSIE = (agent != null && agent.indexOf("MSIE") != -1);
if (isMSIE) {
finalFileName = URLEncoder.encode(downName, "UTF8");
} else {
finalFileName = new String(downName.getBytes("UTF-8"), "ISO-8859-1");
}
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition", "attachment; filename=".concat(finalFileName));
out = response.getOutputStream();
fin = new FileInputStream(file);
bin = new BufferedInputStream(fin);
for (int data = bin.read(); data > -1; data = bin.read()) {
out.write(data);
}
} else {
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (bin != null)
bin.close();
if (fin != null)
fin.close();
if (out != null)
out.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
以上就是本文JavaWeb文件下載的代碼,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
利用Java實現(xiàn)word導(dǎo)入導(dǎo)出富文本(含圖片)的詳細(xì)代碼
這篇文章主要為大家詳細(xì)介紹了利用Java實現(xiàn)word導(dǎo)入導(dǎo)出富文本(含圖片),文中的示例代碼講解詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴可以學(xué)習(xí)一下2024-02-02
spring整合JMS實現(xiàn)同步收發(fā)消息(基于ActiveMQ的實現(xiàn))
本篇文章主要介紹了spring整合JMS實現(xiàn)同步收發(fā)消息(基于ActiveMQ的實現(xiàn)),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10
Mybatis詳解動態(tài)SQL以及單表多表查詢的應(yīng)用
MyBatis的動態(tài)SQL是基于OGNL表達(dá)式的,它可以幫助我們方便的在SQL語句中實現(xiàn)某些邏輯,下面這篇文章主要給大家介紹了關(guān)于Mybatis超級強(qiáng)大的動態(tài)SQL語句的相關(guān)資料,需要的朋友可以參考下2022-06-06
在Java中Collection的一些常用方法總結(jié)
今天給大家?guī)淼闹R是關(guān)于Java的,文章圍繞著Java中Collection的一些常用方法展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06
springcloud中RabbitMQ死信隊列與延遲交換機(jī)實現(xiàn)方法
死信隊列是消息隊列中非常重要的概念,同時我們需要業(yè)務(wù)場景中都需要延遲發(fā)送的概念,比如12306中的30分鐘后未支付訂單取消,那么本期,我們就來講解死信隊列,以及如何通過延遲交換機(jī)來實現(xiàn)延遲發(fā)送的需求,感興趣的朋友一起看看吧2022-05-05

