之前,写过一个Download.jsp文件,可以解决下载文件乱码问题(诸如:DOC,XSL文件等等).
后来发现,遇到中文名的文件的时候,文件下载将会报错~~~~
今天,通过改写原Download.jsp文件已经彻底解决了这个问题~
现在,把一整套的文件上传下载的方法给贴出来~~~以便大家借鉴!~!~!~!~!
作者:古埃及法老
-------------------------------------------------------------------------------------------------------------------
测试环境:WEBLOGIC 8.1,WIN XP SP4,IE 6.0
-----------------------------------------------------
文件上传:
-----------------------------------------
准备工作:导入著名的SmartUpload.jar组件包
upload.jsp文件
---------------------------------------------------------
<%@ page contentType="text/html; charset=gb2312" %>
<%
request.setCharacterEncoding("gb2312"); // 这句话很重要,否则遇到中文就出错~
%>
<HTML><HEAD><TITLE>上传</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
</HEAD>
<BODY leftMargin=0 topMargin=0>
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#DEE7EF">
<tr>
<td align="center">
<FORM action="upload_ok.jsp" method=post name="Upload" enctype="multipart/form-data">
<br>
请输入附件文件的所在路径<FONT color=red> * </FONT>为必填项目<br>
<br>
<TABLE width="317" border=0 cellPadding=0>
<TBODY>
<TR>
<TD align=right vAlign=center nowrap>附件路径:</TD>
<TD><input type="file" name="file" style="border: 1px #FFFFFF solid;background:#efefef" > <FONT color=red>*</FONT></TD>
</TR>
<TR align="center">
<TD height=60 colspan="2" vAlign=center nowrap> <INPUT style="height:22px" name=B1 type=submit value=" 确 定 " >
<INPUT style="height:22px" name=B2 type=reset value=" 取 消 " >
</TD>
</TR>
</TBODY>
</TABLE>
</FORM>
</td>
</tr>
</table>
</BODY></HTML>
---------------------------------------------------------
upload_ok.jsp文件
---------------------------------------------------------
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="com.jspsmart.upload.*" %>
<HTML><HEAD><TITLE>上传成功!</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
</HEAD>
<BODY leftMargin=0 topMargin=0>
<jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />
<table width="80%" border="0" cellpadding="0" cellspacing="0" bgcolor="#DEE7EF">
<tr>
<td align="center">
<%
int count=0;
String fileName = null;
mySmartUpload.initialize(pageContext);
mySmartUpload.upload();
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
if (!myFile.isMissing()) {
//String ext=myFile.getFileExt();//得到后缀
fileName = myFile.getFileName();
myFile.saveAs("/files/" + fileName);//你要存放文件所在文件夹的相对路径
out.println("文件:<b>"+fileName+"</b>上传成功!<br>文件大小:" + myFile.getSize() + "kb<BR>");
}
%>
</BODY></HTML>
---------------------------------------------------------
文件下载:
-----------------------------------------
文件的超连接写法范例:
<% String fname ="中文测试.xsl"; //假设你的文件名是:中文测试.xsl
%>
<A target="_blank" href="Download.jsp?filename=<%=fname%>">下 载</A>
文件的超连接写法范例-2 重新用utf-8对文件名编码:
<%@ page contentType="text/html;charset=gb2312" session="true"%>
<% String name=java.net.URLEncoder.encode("世界文化.doc","UTF-8"));%> <a href="c:\<%=name%>">世界文化.doc</a>
Download.jsp文件
---------------------------------------------------------
<%
java.io.BufferedInputStream bis=null;
java.io.BufferedOutputStream bos=null;
try{
String filename=request.getParameter("filename");
filename=new String(filename.getBytes("iso8859-1"),"gb2312");
response.setContentType("application/x-msdownload");
response.setHeader("Content-disposition","attachment; filename="+new String(filename.getBytes("gb2312"),"iso8859-1"));
bis =new java.io.BufferedInputStream(new java.io.FileInputStream(config.getServletContext().getRealPath("files/" + filename)));
bos=new java.io.BufferedOutputStream(response.getOutputStream());
byte[] buff = new byte[2048];
int bytesRead;
while(-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff,0,bytesRead);
}
}
catch(Exception e){
e.printStackTrace();
}
finally {
if (bis != null)bis.close();
if (bos != null)bos.close();
}
%>
---------------------------------------------------------
分享到:
相关推荐
彻底解决fckeditor(jsp版)上传中文图片乱码问题,我这里用的编码是utf-8的,这里用的fckeditor 是2.6的,fckeditor.java包是2.3的,经过我修改ConnectorServlet.java和SimpleUploaderServlet.java两个文件,重新生成...
配置方法: 替换DBMS配置文件 位置:\Sybase\PowerDesigner 12\Resource Files\DBMS\oracl10g.xdb 完成后执行反向工程即可,反向工程的时候DBMS选择Oracle version 10g就可以了
设置显示文件的扩展名.reg 设置在我的电脑中显示打印机.reg 鼠标自动激活当前窗口.reg 缩短关闭无响应程序时的等待时间.reg 提高光驱的读写能力.reg 提高历史缓冲区的个数.reg 提高软驱的性能.reg 提高显示器...
修正了文件检索默认乱码的问题 4. 增加服务能跳转到对应的注册表 5. 修改下拉箭头不能正常显示的问题 6. 把所有的文件绑定到PowerTool.exe上 2010-08-11 PowerTool V2.5 改善: 1. 修正由于硬件检测导致无法...
修正了文件检索默认乱码的问题 4. 增加服务能跳转到对应的注册表 5. 修改下拉箭头不能正常显示的问题 6. 把所有的文件绑定到PowerTool.exe上 2010-08-11 PowerTool V2.5 改善: 1. 修正由于硬件检测导致无法...
2、增加一个对MS-Office2003的修正功能,对部署后Office问题有一定的修正能力,但仍建议选择优秀的Office修改版本从而可彻底避免此问题 3、感谢Canon提供的2中所述的修正程序 4、整合SkySRS2.99,增强部署兼容性和...
例:替换字符串就支持起始长度、替换个数、GB2与BIG5码相互转换等多选项操作,也支持文件扩展名的修改。现为市场上功能最强大的一款文件及图片批量改名工具。 【工作表保护】 对当前工作薄中的各工作表批量一次性用...
4、新增网络判断功能与提醒功能,在网络状况不佳或意外中断情况下可以协助您解决问题。 5、增加可自动判断的软件安全启动模式。 6、硬件检测结果改为中文显示,并增加更多新硬件支持。 7、解决了2009版本软件自动...
静态编译后的易语言可执行程序(exe)和动态链接库(dll),运行时不再依赖任何支持库文件,文件尺寸更小(相对以前的独立编译),PE结构更合理(取消了“易格式体”),加载速度更快,而且有效解决了“病毒误报”和...
常见的 ASP.NET 2.0 转换问题和解决方案 Asp.Net2.0无刷新客户端回调 体验.net 2.0 的优雅(1) -- 异步WebService调用 ASP.NET 2.0页面框架的几点新功能 ASP.NET 2.0 中收集的小功能点 asp.net2.0中的webpart使用...
例:替换字符串就支持起始长度、替换个数、GB2与BIG5码相互转换等多选项操作,也支持文件扩展名的修改。现为市场上功能最强大的一款文件及图片批量改名工具。 【工作表保护】 对当前工作薄中的各工作表批量一次性用...