21xrx.com
2024-11-22 13:07:47 Friday
登录
文章检索 我的文章 写文章
JavaWeb 实现文件下载,附带代码案例
2023-06-16 21:54:18 深夜i     --     --
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 即可。

三个

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复