1 传入此jsp中的参数均已URLDencoder过。2

3

4

5

6

7 boolean isError = false;8 String errorMsg = "";9 response.reset();//可以加也可以不加

10 request.setCharacterEncoding("UTF-8");11 String folder = "news";12 if(request.getParameter("folder")!=null){13 folder = "upload/"+(String)request.getParameter("folder");14 }15 String newname = request.getParameter("newname");16 //是否允许直接在浏览器内打开

17 boolean isInline = false;18 out.clear();19 response.reset();20 String filePath = request.getRealPath("/"+folder)+"/" +newname;21 java.io.BufferedOutputStream output = null;22 java.io.BufferedInputStream input = null;23 try{24 java.io.File f = newjava.io.File(filePath);25 if(f.exists() &&f.canRead()){26 String mimetype = null;27 mimetype =application.getMimeType( filePath );28 if(mimetype==null){29 mimetype = "application/octet-stream;charset=utf-8";30 }31 response.setContentType(mimetype);32 //IE 的话就只能用 IE 才认识的头才能下载 HTML 文件, 否则 IE 必定要打开此文件!

33 String ua = request.getHeader("User-Agent"); //获取终端类型

34 if(ua==null ){ua = "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0;)";}35 boolean isIE = ua.toLowerCase().indexOf("msie")!=- 1; //是否为 IE

36 if (isIE && !isInline) {37 mimetype = "application/x-msdownload";38 }39 response.setContentType(mimetype);40 //是否内联附件

41 String inlineType = isInline?"inline":"attachment";42 response.setHeader("Content-Disposition" , inlineType + ";filename=" +filename);43 //设置下载内容大小

44 response.setContentLength((int)f.length());45 //缓冲区

46 byte[] buffer = new byte[ 4096];47 output = newjava.io.BufferedOutputStream(response.getOutputStream());48 input = new java.io.BufferedInputStream(newjava.io.FileInputStream(f));49 int n = (-1);50 while((n=input.read(buffer,0,4096))>-1){51 output.write(buffer,0,n);52 }53 response.flushBuffer();54

55 }else{56 isError = true;57 errorMsg = "文件不存在!";58 }59 } catch(Exception ex) {60 isError = true;61 errorMsg = "您下载的文件出现异常!";62 } finally{63 if(isError){64 String path = request.getHeader("Referer");65 errorMsg=new String(errorMsg.getBytes("GBK"), "ISO8859_1");66 %>

67

68 alert('');69 window.location.href='';70

71

72 }73 if(input!=null){input.close();}74 if(output!=null){output.close();}75 out.clear();76 out =pageContext.pushBody();77 }78 %>

备注:

public void downBatchRateModelFile(String fileName,String downName, HttpServletResponse response,HttpServletRequest request) {

try {

String downPath = TemplateBuilder.getInstance().getBatchRateModelFold()+File.separator+fileName;

// path是指欲下载的文件的路径。

File file = new File(downPath);

// 取得文件名。

String filename = file.getName();

// 取得文件的后缀名。

String ext = filename.substring(filename.lastIndexOf(".") )

.toLowerCase();

filename = downName+ext;

// 以流的形式下载文件。

InputStream fis = new BufferedInputStream(new FileInputStream(downPath));

byte[] buffer = new byte[fis.available()];

fis.read(buffer);

fis.close();

// 清空response

response.reset();

// 设置response的Header

response.addHeader("Content-Length", "" + file.length());

String mimetype = "application/octet-stream;charset=utf-8";

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; // 是否为 IE

if (isIE) {

mimetype = "application/x-msdownload";

response.addHeader("Content-Disposition", "attachment;filename="

+ java.net.URLEncoder.encode(filename, "UTF-8"));

}else{

response.addHeader("Content-Disposition", "attachment;filename="

+ new String(filename.getBytes("GBK"),"ISO-8859-1"));

}

response.setContentType(mimetype);

//response.setContentType("application/x-msdownload");

OutputStream toClient = new BufferedOutputStream(

response.getOutputStream());

//response.setContentType("application/octet-stream");

toClient.write(buffer);

toClient.flush();

toClient.close();

} catch (IOException e) {

}

}

java的jsp要下载吗_jsp、java下载附件相关推荐

  1. Java中Jsp和Servlet上传和下载文件

    上传: 前端页面: <%@ page contentType="text/html;charset=UTF-8" language="java" %> ...

  2. java读取jsp文件内容_使用Java读取Excel文件内容

    问题:我能用Java读取一个Excel文件吗?如果能,怎么做? 回答:是的,可以用Java读取Microsoft Excel文件.微软提供了一个Excel的ODBC驱动程序,因此我们就可以使用JDBC ...

  3. IDEA+Java+Servlet+JSP+Mysql实现学生选课签到系统

    一.系统介绍 1.开发环境 开发工具:IDEA2018 JDK版本:jdk1.8 Mysql版本:8.0.13 2.技术选型 Java+Servlet+Boostrap+Jsp+Mysql 3.系统功 ...

  4. 基于javaweb的在线车队货车管理系统(java+ssm+jsp+bootstrap+mysql)

    基于javaweb的在线车队货车管理系统(java+ssm+jsp+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/ ...

  5. Java+SSM+Jsp+Mysql实现Web汽车信息管理系统

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库文件 5.工程截图 二.系统展示 1.登录系统 2.系统首页 3.用户管理-添加用户 4.用户管理-查询用户 5.用户管理-修改 ...

  6. 基于javaweb的毕业设计毕业论文管理系统(java+ssm+jsp+tomcat+mysql)

    基于javaweb的毕业设计毕业论文管理系统(java+ssm+jsp+tomcat+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/m ...

  7. IDEA+Java+Servlet+JSP+Mysql实现Web停车场管理系统【建议收藏】

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库 5.工程截图 二.系统展示 1.登录界面 2.主页面 3.系统信息管理-添加角色信息 4.系统信息管理-管理角色信息 5.系统 ...

  8. IDEA+Java+SSM+JSP+Mysql+Tomcat实现Web药品信息管理系统

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库文件 二.系统展示 1.登录系统 2.管理员-主页 3.管理员-人员信息管理 4.管理员-进药信息管理 5.管理员-售药信息管理 ...

  9. IDEA+Java+SSM+JSP+Mysql实现超市订单系统

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库文件 二.系统展示 1.登录系统 2.系统首页 3.订单管理 4.供应商管理 5.用户管理 6.修改密码 三.部分代码 Base ...

  10. 基于javaweb的养老院管理系统(java+ssm+jsp+easyui+mysql)

    基于javaweb的养老院管理系统(java+ssm+jsp+easyui+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myecli ...

最新文章

  1. React-Native 使用真机和指定模拟器调试
  2. Java 位图法排序
  3. java创建阻塞_如何从HttpsURLConnection创建Java非阻塞InputStream?
  4. ExcelBDD-Java开源组件发布了!
  5. 搜索引擎反作弊之:链接作弊与隐藏作弊
  6. 一个简单WCF项目的建立 by wsz
  7. java限制符含义_JAVA的访问控制符private,default,protected,public
  8. Uncaught Error: Bootstrap tooltips require Tether (http://github.hubspot.com/tether/)
  9. 动态编译和静态编译及Java执行
  10. 光伏项目用地政策解析
  11. 华为笔记本没有网线口_3599元起,华为台式机MateStation B515上架:R5 4600G
  12. 天网防火墙技术白皮书
  13. 机器学习常见算法分类汇总
  14. Python中更新pip版本的那些事
  15. Access入门之基本操作和认识
  16. ps怎么抠地图线路_怎样在PS里画地图的边界线?
  17. 计算机word页面设置A5,word页面缩放怎样设置
  18. 关于cesium1.92以上版本无法加载draco压缩模型问题
  19. Gromacs—GMX
  20. BRC4工具1.2.2入门教程学习

热门文章

  1. 状态目标bfs+哈希表 + 三杯水
  2. 软件工程导论课程主页 :12-13-2
  3. IIS 启动不了(服务没有及时响应启动或控制请求)解决
  4. URLEncoder 、URLDecoder 对中文转码解码使用
  5. ssh报错解决 ECDSA host key for 123.56.11.181 has changed and you have requested strict checking.
  6. fopen -- 打开文件或者 URL
  7. 计算机硬件基础大纲,计算机硬件基础教学大纲..docx
  8. android抽屉屏幕右滑,android - Android - 使滑动抽屉从左向右滑动 - 堆栈内存溢出...
  9. 文件读写的“二进制模式”和“文本模式”
  10. 鸿蒙思维和小央美,中心路汝南路站附近艺术培训