下载根目录下的pdf文件, 浏览器下载
public void outPut(HttpServletRequest request, HttpServletResponse response, Integer type) { ClassPathResource classPathResource = new ClassPathResource("pdf/通知.pdf"); String filename = "通知.pdf"; BufferedInputStream bufferedInputStream = null; BufferedOutputStream bufferedOutputStream = null; try { String userAgent = request.getHeader("User-Agent"); response.setCharacterEncoding("utf-8"); byte[] bytes = userAgent.contains("MSIE") ? filename.getBytes() : filename.getBytes("UTF-8"); response.setContentType("application/pdf"); response.addHeader("Content-Disposition", "attachment;filename=" + new String(bytes, "iso8859-1")); bufferedInputStream = new BufferedInputStream(classPathResource.getInputStream()); //bufferedOutputStream = new BufferedOutputStream(response.getOutputStream()); byte[] bytes2 = new byte[1024]; int i = 0; while ((i = bufferedInputStream.read(bytes2)) != -1){ response.getOutputStream().write(bytes2, 0, i); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { try { response.getOutputStream().flush(); response.getOutputStream().close(); //bufferedOutputStream.close(); bufferedInputStream.close(); } catch (IOException e) { e.printStackTrace(); } } }
上面的被注销掉的两行代码,在没有注销之前,下载的pdf老是打不开。再去掉包装之后,文件可以正常打开。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)