<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    學習 學習 再學習

    學習才是唯一的出路

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      31 隨筆 :: 1 文章 :: 8 評論 :: 0 Trackbacks

    徹底解決中文名文件下載和下載文件內(nèi)容亂碼問題!!!!! 之前,寫過一個Download.jsp文件,可以解決下載文件亂碼問題(諸如:DOC,XSL文件等等).
    后來發(fā)現(xiàn),遇到中文名的文件的時候,文件下載將會報錯~~~~
    今天,通過改寫原Download.jsp文件已經(jīng)徹底解決了這個問題~
    現(xiàn)在,把一整套的文件上傳下載的方法給貼出來~~~以便大家借鑒!~!~!~!~! 
    作者:古埃及法老
    -------------------------------------------------------------------------------------------------------------------
    測試環(huán)境: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=middle 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=middle 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();
    }
    %> 
     



    J-CN工作室
    www.j-cn.org
    posted on 2009-10-01 15:15 鐵猴 閱讀(778) 評論(0)  編輯  收藏 所屬分類: JAVA隨記
    主站蜘蛛池模板: 亚洲av日韩专区在线观看| 亚洲欧洲久久精品| 国产成人 亚洲欧洲| 免费黄色小视频网站| 亚洲色少妇熟女11p| 好吊妞视频免费视频| 亚洲精品无AMM毛片| 性做久久久久免费看| 美国毛片亚洲社区在线观看| 国产人成免费视频| 日本高清不卡中文字幕免费| 亚洲日本一区二区一本一道| 久久久精品国产亚洲成人满18免费网站 | 成年女人视频网站免费m| 亚洲中文字幕久久精品无码A | 免费H网站在线观看的| 亚洲三级在线观看| 国产免费人成视频在线观看| 一级特级女人18毛片免费视频| 亚洲一区AV无码少妇电影☆| 一个人免费日韩不卡视频| 亚洲成人黄色在线观看| 成人午夜免费福利| 日韩免费高清一级毛片| 亚洲精品美女久久久久99| 99久久免费看国产精品| 亚洲熟妇无码AV不卡在线播放| 免费国产一级特黄久久| 91成人免费福利网站在线| 亚洲视频小说图片| 国产在线ts人妖免费视频| 中文字幕无码免费久久9一区9| 亚洲沟沟美女亚洲沟沟| 国产精品无码一二区免费| 国产日韩AV免费无码一区二区| 亚洲国产精品人久久电影| 亚洲第一网站男人都懂| 2019中文字幕免费电影在线播放| 亚洲a∨无码一区二区| 久久精品国产亚洲av麻| 成年女性特黄午夜视频免费看|