::古埃及象形文字::

Linus最聪明最了不起的工作不是创建了Linux内核本身,而是发明了Linux开发模式,当某人有一次当着他的面表达这种观点时,他微笑了一下,重复了一句他经常说的话:“我基本上是一个懒惰的人,依靠他人的工作来获取成绩。”

原创 彻底解决中文名文件下载和下载文件内容乱码问题!!!!!收藏

之前,写过一个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();
}
%> 

---------------------------------------------------------

发表于 @ 2005年10月07日 22:01:00|评论(loading...)

新一篇: ASP对中文名文件下载的处理办法  | 旧一篇: Tomcat5配置Mysql JDBC数据库连接池(转)

用户操作
[即时聊天] [发私信] [加为好友]
古埃及法老(pharaohsprince)
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
古埃及法老(pharaohsprince)的公告
访问量
文章分类
收藏
    【平面设计】
    Bestmoban.com
    圆点视线
    £免费资源£
    E维商务网 - 9iv.com(E号:79811,281279,338050)
    WebDN.com
    中国教程联盟—打造中国最全面的技术类教程网站
    §SOA服务与技术
    CSDN--SOA专家群
    §技术论坛
    BlogJava - 专注于Java技术
    itpub.net
    javaworld.com.tw 相当全面的综合网站
    RIACHINA 中国RIA开发者论坛
    §建站系统
    KingCMS官方网站 - 中文域名建站系统.com
    网贝建站-提供最新技术动态
    §框架技术
    *Hibernate中文论坛
    *Hibernate中文论坛(官方)
    *Spring 中文论坛
    *WebWork中文站点
    【AppFuse 整合的J2EE框架】
    Apache HTTP Server Version 2.2 文档
    Spring Framework 开发参考手册(1.1)
    Spring Framework 开发参考手册(2.0 RC2)
    Spring框架完全进阶专题|中国IT实验室
    快速上手Hibernate连载
    快速上手Spring连载
    §源代码查询地带
    codeproject.com
    coreservlets.com
    java2s
    Java学习源代码检索系统
    O'Reily旗下的codeZoo
    共创联盟
    ★优秀的Wiki社区★
    Dashboard
    MatrixPedia
    AJAX
    [AJAX框架汇总]
    √ Buffalo -(Ajax-Frameworks)
    √ DWR -(Ajax-Frameworks)
    √ ECHO2 -(Ajax-Frameworks)
    √ RICO -(Ajax-Frameworks)
    ajaxpatterns.org-研究AJAX技术及应用的专业网站
    ajaxtags.sourceforge.net
    Ajax中国
    eamoi之Coder日志
    prototype.js 1.4版开发者手册(强烈推荐)
    x2blog (基于ajax+web2的社区)
    无忧AJAX
    Eclipse plugins
    eclipse-plugins.2y.net
    Eclipse中国社区
    open-open.com
    sourceforge.net
    电子书籍下载
    【零度电子书库】
    √oksonic教学录象下载
    ■ JavaSearch - 本地下载
    ■ Java爱好者(www.javafan.net)
    ■ JAVA资源网(www.javazy.com)
    ■ 听雨尘心@含藏识 (相关资料下载:ftp://61.180.77.213:21/Ebooks(tycx)@ilovebooks@ilovebooks)
    ■ 帝国藏经阁 - 国内最全的技术文档基地
    ■ 爱书吧首页-Java专题
    iTePub-电子图书
    中国IT实验室下载区
    得益网netyi.net(user:pharaohswj)
    法老精品店
    *IBM developerWorks 中国
    *Sun 中国技术社区
    *websphere - CSDN tag 专区
    |爪哇流氓|
    《CSDN社区电子杂志-Java杂志》官方Blog
    《CSDN社区电子杂志-Oracle杂志》官方Blog
    anfy官方网-比较早写APPLET的地方
    BEA dev2dev在线
    CSDN-知识库
    Easyjf.com(简易java框架)
    Ext JS项目
    Hello,开源 -介绍Java,PHP,C#开源软件项目
    Huihoo
    itepub.net技术专区
    IT技术 - 赛迪网
    Java开源大全
    Java视线论坛
    JR,汇聚技术精英,增进技术交流
    JSP中文网
    J道:Java解决之道
    Matrix - 与 Java 共舞
    XML中文站
    中国Java开发网
    中文JAVA技术网 -- 为Java爱好者服务
    满江红.开源
    豆豆技术网--最大的计算机教学资源网
    技术私人家园
    *林信良(良葛格)的专栏
    *良葛格學習筆記
    beyond_xiruo
    JiangLan's Blog-
    lhwork_BLOG
    不断学习
    习惯学习-Eclipse专题
    分享JAVA快乐
    华山论剑_一心一意做技术!
    山高岳小,水落石出
    野马网站blog,创业,技术
    铁手剑谱
    键者天行
    黄叶小站
    其他
    cracks4u(老外的软件破解基地)
    收集的好地方
    TopMuZik 音樂時光隧道 -
    youtube.com/(全球最大的视频短片集散地)
    乐韵悠悠乐韵悠悠(音乐赏析)
    友情链接
    ~beansoft_CODEMANAGER
    『法老设计空间』
    ♬梦幻尼罗河♬
    存档
    软件项目交易
    Csdn Blog version 3.1a
    Copyright © 古埃及法老(pharaohsprince)