JAVAWeb文件下载功能
2020-04-01 19:04
861 查看
个人博客地址https://nfreak-man.cn
-
编写html页面,编辑超链接 href 属性,指向Servlet并传递要下载的文件名及格式
-
Servlet:*获取文件名称
*使用字节输入流加载文件进内存
*指定 response 的响应头:content-disposition:attachmement;filename=xxx
*将数据写出到 response 输出流
html a标签格式
href="/day15/downloadServlet?filename=鬼刀.png"
Servlet
@WebServlet("/downloadServlet") public class DownloadServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取请求参数,文件名称 String filename = request.getParameter("filename"); //使用字节输入流加载文件进内存 //找到文件的服务器路径 ServletContext servletContext = this.getServletContext(); String realPath = servletContext.getRealPath("/img/" + filename); //用字节流关联 FileInputStream fis = new FileInputStream(realPath); //设置response的响应头 //设置响应头类型:content-type String mimeType = servletContext.getMimeType(filename); response.setHeader("content-type",mimeType); //设置响应头打开方式:content-disposition //解决中文文件名问题 //获取user-agent请求头 String agent = request.getHeader("user-agent"); //使用工具类方法编码文件名即可 String fileName = DownLoadUtils.getFileName(agent, filename); response.setHeader("content-disposition","attachment;filename="+fileName); //将输入流的数据写出到输出流中 ServletOutputStream sos = response.getOutputStream(); byte[] buff = new byte[1024 * 8]; int len = 0; while ((len = fis.read(buff))!=-1){ sos.write(buff,0,len); } fis.close(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request,response); } }
注:解决中文文件名下载不能正常显示问题,需要用到 DownLoadUtils 类获取浏览器编码方式,百度搜索下载即可。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- JavaWeb实现文件上传下载功能实例解析
- JavaWeb实现文件上传下载功能实例解析
- JavaWeb实现文件上传下载功能实例解析
- javaweb项目中的文件上传下载功能的实现
- JavaWeb 文件的上传和下载功能简单实现代码
- JavaWeb实现文件上传下载功能实例解析以及项目工程示例下载
- JavaWeb实现文件上传下载功能实例解析
- JavaWeb实现文件上传下载功能实例解析
- JavaWeb实现文件上传下载功能实例解析
- JavaWeb实现文件上传下载功能实例解析
- JavaWeb实现文件上传下载功能实例解析
- JavaWeb实现文件上传下载功能实例解析
- JavaWeb文件上传下载功能深入分析(二)
- JavaWeb实现文件上传下载功能实例解析
- JavaWeb实现文件上传下载功能实例解析
- JavaWeb实现文件上传下载功能实例解析
- JAVAWeb GET,POST,文件上传下载,验证码功能实现
- javaweb文件的下载和上传功能的实现(2)
- JavaWeb文件下载功能实例代码
- JAVAweb,FtpClient实现ftp断点上传,下载,删除,获取文件大小,获取文件流功能