zl程序教程

您现在的位置是:首页 >  其他

当前栏目

javaweb之文件下载

文件下载 javaweb
2023-09-27 14:26:51 时间

效果图

  • 每个浏览器弹出窗口有差异,我用的是QQ浏览器
    在这里插入图片描述

目录结构

在这里插入图片描述

核心代码

package servlet;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DownServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		//1,接收前台参数,. 获取要下载的文件名Readme.txt
		String fileName = request.getParameter("filename");
		
		//2. 获取Readme.txt在tomcat里面的绝对路径
		String path = getServletContext().getRealPath("files/"+fileName);
		
		//3,设置响应头,提示用户,自定义下载
		response.setHeader("Content-Disposition", "attachment; filename="+fileName);
		
		//4. 转化成输入流
		InputStream is = new FileInputStream(path);
		OutputStream os = response.getOutputStream();
		
		int len = 0 ;
		byte[]buffer = new byte[1024];
		while( (len = is.read(buffer)) != -1){
			os.write(buffer, 0, len);
		}
		
		os.close();
		is.close();
	
	}

	
}

index.html代码

	<h2><a href="DownServlet?filename=Readme.txt">点击下载Readme.txt</a></h2>
	

案例链接

链接:https://pan.baidu.com/s/1_I1IsSnJrnmWrumvHsDajA
提取码:cv5k