1: 建议以后都不要用JSP来实现下载,最好用 servlet的方式来实现。。。
2: 如果一定要实现JSP方式来下载,最好页面内java代码体外(<%%>符号外)不要包含任何内容(空格与回车也不可以有)
3: 当然java代码部分可以有空格 和 回车
4: 具体实现代码如下:
<%@ page language="java" pageEncoding="gbk"%><%@ page import="org.apache.commons.logging.Log,org.apache.commons.logging.LogFactory" %><%
Log log = LogFactory.getLog(this.getClass());
String name_cn=(String)request.getAttribute("name_cn");///获取文件名称 格式 sss.doc
String abstrUrl=(String)request.getAttribute("abstrUrl");//获取文件相对或绝对路径,为空走默认!
response.setContentType("application/octet-stream;charset=gbk"); // charset=gb2312
String ffnmae=new String(name_cn.getBytes("gb2312"),"iso8859-1");//格式化 名称
response.setHeader("Content-Disposition","attachment; filename="+ffnmae);
java.io.FileInputStream in = null;
java.io.BufferedInputStream binpu = null;
java.io.BufferedOutputStream bout = null;
try{
in = new java.io.FileInputStream(abstrUrl);
binpu = new java.io.BufferedInputStream(in);
bout = new java.io.BufferedOutputStream(response.getOutputStream());
byte[] b = new byte[1024];
int i = 0;
while((i = binpu.read(b,0,b.length)) > 0){
bout.write(b, 0, i);
}
bout.flush();
//要加以下两句话,否则会报错
out = pageContext.pushBody();
response.flushBuffer();
out.clear();
}catch(Exception e){
log.error("下载错误,错误URL:"+abstrUrl, e);
}finally{
if(in != null){
try {
in.close();
} catch (java.io.IOException e) {
log.error("关闭文件错误", e);
}
in = null;
}
if(binpu != null){
try {
binpu.close();
} catch (java.io.IOException e) {
log.error("关闭输入流错误", e);
}
binpu = null;
}
if(bout != null){
try {
bout.close();
} catch (java.io.IOException e) {
log.error("关闭输出流错误", e);
}
bout = null;
}
}
%>
分享到:
相关推荐
本文将深入解析如何在JSP中实现文件下载,并解决中文文件名乱码的问题。 首先,我们需要了解HTTP协议在处理文件下载时的角色。当用户请求下载一个文件时,服务器需要设置响应头来指示浏览器如何处理这个响应。在JSP...
当你需要让用户从网站上下载Word或Excel文件时,JSP可以扮演关键角色。本篇将详细介绍如何利用JSP实现这一功能,包括核心知识点、步骤解析以及相关的编程技巧。 一、JSP下载原理 在JSP中,我们通常通过Servlet来...
本文档将详细介绍如何使用Java Server Pages (JSP) 实现从服务器端下载Excel文件到客户端的过程。 #### 二、准备工作 1. **环境配置**: - Java 开发工具包 (JDK) - Apache Tomcat 或其他支持 JSP 的 Web 服务器...
多文件上传例子,彻底解决中文乱码问题了。总结中文乱码问题如下: 1、所有页面都用UTF-8。 2、写过滤器,设置request.setCharacterEncoding("UTF-8")。 3、javascript脚本里用encodeURI(str)。 4、适当的时候,在...
**解决JSP乱码的策略** 1. **设置JSP页面编码**:在JSP文件顶部添加`;charset=UTF-8" language="java" %>`,指定页面编码为UTF-8。 2. **修改服务器配置**:在Tomcat的`server.xml`文件中,找到`Connector`标签,...
最近实验室做了一个项目,使用jspsmartupload来实现的文件的上传下载,原来在windows平台运行的挺好,但是后来系统移植到linux平台上,结果在上传或下载的文件名中有中文时就会出现乱码。后来查了网上一些人的解决...
( response.setHeader()下载中文文件名乱码问题
不同浏览器上中文文件名的下载乱码问题 浏览器IEChromeSafariOpera 浏览器能正确识别的编码格式
jsp SmartUpload 中文乱码问题解决是指在使用 jsp 的 SmartUpload 组件进行文件上传下载时,遇到中文乱码问题的解决方法。在这篇文章中,我们将介绍如何解决 jsp 中 SmartUpload 中文乱码问题。 一、上传 在使用 ...
本文将深入探讨“JSP乱码”的多种解决方案,并提供实用的解决策略。 1. **理解字符编码的基本概念** - 字符编码是计算机对文字进行存储和处理的标准,常见的有ASCII、GBK、UTF-8等。 - JSP页面默认使用ISO-8859-1...
标题中的“jsp实现下载excel,word,pdf,jpg,gif,xml,js过滤器实现文档.docx”描述了一个使用JavaServer Pages(JSP)技术来处理文件下载的问题,特别是涉及了如何解决在Tomcat和Resin服务器上下载中文文件名时出现的...
标题中的“jspSmartUpload上传中文文件名乱码问题”是一个常见的技术挑战,特别是在处理Web应用程序时,特别是那些涉及用户上传文件的场景。JSP Smart Upload是早期流行的一个用于Java Web应用的文件上传组件,它...
本项目专注于解决在JSP中实现文件上传和下载时遇到的一些常见问题,特别是针对中文文件名的处理。下面我们将深入探讨这个主题。 首先,文件上传通常涉及到HTTP协议中的multipart/form-data类型表单。在JSP中,我们...
标题中的“jsp实现下载excel,word,pdf,jpg,gif,xml,js过滤器实现文档.pdf”描述了一种使用JavaServer Pages(JSP)技术来处理文件下载的方法,特别是针对Excel、Word、PDF、JPEG、GIF、XML和JS等不同类型的文件。...
通过修改源码,解决了上传与下载时候的乱码问题,
该插件不仅能解决properties文件在编辑器中的乱码问题,还能确保JSP页面正确显示资源文件中的内容,而无需手动编码转换。 安装步骤如下: 1. 在Eclipse中,依次选择`Help` > `Software Updates` > `Find and ...
接下来,我们将深入探讨如何解决`JSP文件上传`时的中文乱码问题。 首先,我们需要理解文件上传的基本流程。在`JSP`中,通常会使用`<form>`标签的`enctype="multipart/form-data"`属性来定义一个支持文件上传的表单...
5. **处理编码问题**:JSpsmart实例中特别注意了文件名乱码问题,确保文件名在上传和下载过程中保持正确。 ### 二、JSpsmart工作流程 1. **初始化SmartUpload对象**:在JSP或Servlet中创建SmartUpload实例,并进行...
jspsmart上传组件,解决中文标题乱码,已修改源码为utf-8
在处理文件下载时,可能会遇到中文文件名乱码的问题,这主要是由于字符编码不一致导致的。以下是对这个问题的详细分析及解决方案: 首先,问题出现在文件列表的展示和下载链接的生成过程中。在Action中,`request....