21xrx.com
2025-04-21 11:28:40 Monday
文章检索 我的文章 写文章
JavaWeb 实现文件下载,附带代码案例
2023-06-16 21:54:18 深夜i     12     0
JavaWeb 文件下载 Servlet

在 JavaWeb 应用程序中,实现文件下载功能是很常见的需求。本文为读者提供了一个简单易懂,可直接运行的文件下载的示例代码。

代码中,通过在 HttpServletResponse 对象中设置 content-disposition 属性,可以将服务器上指定路径的文件(例如图片、音频、PDF 等)以指定名称下载到客户端。

下面是 JavaWeb 实现文件下载的示例代码:

@WebServlet("/download")
public class DownloadFileServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取要下载的文件名
String fileName = request.getParameter("fileName");
//设置要下载的文件路径
    String filePath = "C:\\Download\\"+ fileName; //服务器上文件所在的路径
//通过流得到文件的字节流
InputStream inStream = new FileInputStream(filePath);
//设置响应头,控制浏览器下载该文件
response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
//通过文件流写到客户端
OutputStream outStream = response.getOutputStream();
byte[] buffer = new byte[1024];//设置缓存区为 1KB
int len = 0;//每次读取的 byte 数量
while ((len = inStream.read(buffer)) > 0) {
outStream.write(buffer, 0, len);
}
inStream.close();
outStream.close();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}

该代码使用 Servlet 技术实现文件下载功能,其中通过 doGet() 方法获取要下载的文件名,设置要下载的文件路径,获取文件字节流,设置响应头,并将文件 byte 流写到客户端。

使用时只需创建一个 Servlet,通过浏览器访问 pages.jsp 页面,在页面中通过表单传递要下载的文件名调用 DownloadFileServlet 即可。

三个

  
  

评论区