servlet实现文件下载
servlet实现文件下载
描述
servlet实现文件下载很简单的,只需要如下代码。
- 首先,配置servlet环境(配置一下Tomcat服务器即可)
- 然后,重写doGet()方法
就完成了
环境
- 项目目录
- controller
@WebServlet("/download")
public class downloadController extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1、获得下载文件的路径
String realPath = "/Users/mac/Desktop/servlet/web/学习进度建议.png";
//2、下载文件的文件名?
String fileName = realPath.substring(realPath.lastIndexOf("/") + 1);
//3、设置type,让浏览器支持下载
resp.setHeader("Content-Disposition","attachment;filename="+ URLEncoder.encode(fileName,"UTF-8"));
//4、获取下载文件的输入流
FileInputStream in = new FileInputStream(realPath);
//5、创建缓冲区
int len = 0;
byte[] buffer = new byte[1024];
//6、获取OutputStream对象
ServletOutputStream out = resp.getOutputStream();
//7、将FileOutputStream流写入buffer缓冲区
while ((len = in.read(buffer)) > 0) {
out.write(buffer,0,len);
}
in.close();
out.close();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端