首頁 >Java >java教程 >如何在Java Servlet中實現檔案下載功能?

如何在Java Servlet中實現檔案下載功能?

王林
王林轉載
2023-04-26 18:37:081665瀏覽

1、說明

Servlet是Sun公司開發的用於互動式地瀏覽和產生數據,產生動態Web的技術。狹義的Servlet是指Java語言實作的一個介面。但一般情況下,我們把實作了Servlet介面的Java程式叫做Servlet

2、使用servlet程式下載

//得到需要下载的文件
String path = this.getServletContext().getRealPath("/upload/9/1/图片1.png");
File file = new File(path);
//读取服务器本地的文件
FileInputStream in = new FileInputStream(file);
/**
 * 处理URL编码问题
 */
String fileName = file.getName();
//对文件名进行URl编码
fileName = URLEncoder.encode(fileName, "utf-8");
//判断不同浏览器
String userAgent = request.getHeader("user-agent");
String filefix = null;
if(userAgent.contains("Trident")){
//IE
filefix = "filename="+fileName;
}else if(userAgent.contains("Firefox")){
//Firefox
filefix = "filename*="+fileName;
}else{
filefix = "filename="+fileName;
}
//告诉浏览器以下载方式打开资源
response.setHeader("Content-Disposition", "attachment;"+filefix);
//把本地文件发送给浏览器
byte[] buf = new byte[1024];
int len = 0;
while( (len=in.read(buf))!=-1 ){
response.getOutputStream().write(buf, 0, len);
}
//关闭
in.close();

以上是如何在Java Servlet中實現檔案下載功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除