風人園

          弱水三千,只取一瓢,便能解渴;佛法無邊,奉行一法,便能得益。
          隨筆 - 99, 文章 - 181, 評論 - 56, 引用 - 0
          數(shù)據(jù)加載中……

          徹底解決中文名文件下載和下載文件內(nèi)容亂碼問題(轉(zhuǎn)載)

          文件上傳:
          -----------------------------------------
          準備工作:導入著名的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"; //假設(shè)你的文件名是:中文測試.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();
          }
          %>

          ?

          posted on 2006-07-05 14:10 風人園 閱讀(667) 評論(0)  編輯  收藏 所屬分類: Web

          主站蜘蛛池模板: 福海县| 广灵县| 类乌齐县| 浮梁县| 湖州市| 织金县| 杭州市| 武夷山市| 东兴市| 伊吾县| 新民市| 龙泉市| 临清市| 都昌县| 湖口县| 宁波市| 正镶白旗| 东莞市| 浦北县| 钦州市| 郑州市| 林西县| 新巴尔虎左旗| 安平县| 巴楚县| 宾阳县| 南开区| 博白县| 安泽县| 湄潭县| 瓦房店市| 平昌县| 中方县| 沧源| 鹤峰县| 宽甸| 哈尔滨市| 大邑县| 曲松县| 五指山市| 永州市|