JSP文件下载
程序员文章站
2022-03-05 12:25:17
...
JSP工具之,文件下载
<% String filePath = request.getParameter("filePath"); filePath = URLDecoder.decode(filePath, "UTF-8"); String fileName = request.getParameter("fileName"); fileName = URLDecoder.decode(filePath, "UTF-8"); out.clear(); if(filePath==null || "".equals(filePath)){ response.getWriter().write("{success:false}"); }else{ File downFile = new File(filePath); if(downFile.exists() && downFile.isFile()){ String mimeType = null;//媒体类型 boolean isInline = false;//是否要在浏览器打开 mimeType = application.getMimeType(filePath); if(mimeType==null) mimeType = "application/octet-stream;charset=iso8859-1"; response.setContentType(mimeType); String ua = request.getHeader("User-Agent");//获取终端类型 if(ua==null) ua = "User-Agent:Mozilla/4.0(compatible;MSIE 6.0;)"; boolean isIE = ua.toLowerCase().indexOf("msie")!=-1; if(isIE && ! isInline){ mimeType = "application/x-msdownload"; } String downFileName = new String(fileName.getBytes(),"iso8859-1"); String inlineType = isInline ? "inline" : "attachment"; response.setHeader("Content-Disposition", inlineType+";filename=\""+downFileName+"\""); response.setContentLength((int) downFile.length()); byte[] buffer = new byte[4096]; BufferedOutputStream output = null; BufferedInputStream input = null; try{ output = new BufferedOutputStream(response.getOutputStream()); input = new BufferedInputStream(new FileInputStream(downFile)); int n = -1; while((n=input.read(buffer,0,4096))>-1){ output.write(buffer,0,n); } response.flushBuffer(); }catch(Exception e){ }finally{ if(input != null) input.close(); if(output != null) output.close(); } }else{ response.getWriter().write("{\"success\":false}"); } }%> //这里不能换行,否者会报错,原因解析的时候会当初输出流
上一篇: oracle空表导出问题的处理
下一篇: spring-cache的使用
推荐阅读
-
拍大师怎么导出视频以及如何使用拍大师导出其他格式的视频文件?
-
天猫魔盒一键安装野花tv助手使用方法(附天猫魔盒一键安装工具下载)
-
迅雷如何建立远程下载任务?迅雷远程下载功能使用教程
-
UC云盘文中的文件怎么转存到360云盘?将uc云盘文中的文件转存到360云盘的方法
-
将.sql文件的数据库结构导入powerdesigner 的方法
-
Artcam 2009中文版安装破解及汉化图文详细教程(附下载地址)
-
用EXCEL表格和软件打开xml文件的方法具体步骤
-
java api 中文手册怎么下载(java api 中文手册下载攻略)
-
在windows下使用淘宝的nginx插件 nginx_concat_module (附下载地址)
-
Chrome新扩展插件,可直接在桌面应用中打开Google Drive网盘文件