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

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

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

    fileupload上傳中文文件名時亂碼問題

    昨天讓這個亂碼問題弄了很久,一大早就開始想要怎么解決才好。
    很簡單上傳頁面,jsp上傳頁面代碼
    1    <form action="/struts2/UploadServlet" method="post" enctype="multipart/form-data"> 
    2        用戶名:<input type="text" name="username"><br>
    3        密 碼:<input type="password" name="password"><br>
    4        文件1:<input type="file" name="file1"><br>
    5        文件2:<input type="file" name="file2"><br>
    6        <input type="submit" value="提交">
    7    </form> 
    下面是UploadServlet代碼
     1@SuppressWarnings("serial")
     2public class UploadServlet extends HttpServlet {
     3
     4    @SuppressWarnings("unchecked""deprecation" })
     5    public void doPost(HttpServletRequest request, HttpServletResponse response)
     6            throws ServletException, IOException {
     7//            設置工廠
     8            DiskFileItemFactory factory = new DiskFileItemFactory();
     9            String path = request.getRealPath("/upload");
    10//            設置文件存儲位置
    11            factory.setRepository(new File(path));
    12//            設置大小,如果文件小于設置大小的話,放入內存中,如果大于的話則放入磁盤中
    13            factory.setSizeThreshold(1024*1024);
    14            
    15            ServletFileUpload upload = new ServletFileUpload(factory);
    16//            這里就是中文文件名處理的代碼,其實只有一行,serheaderencoding就可以了
    17            upload.setHeaderEncoding("utf-8");
    18            /*String enCoding = request.getCharacterEncoding();
    19            if(enCoding != null){
    20                upload.setHeaderEncoding(enCoding);
    21            }*/

    22            
    23            try {
    24                List<FileItem> list = upload.parseRequest(request);
    25                for(FileItem item : list){
    26//                    判斷是不是上傳的文件,如果不是得到值,并設置到request域中
    27//                    這里的item.getfieldname是得到上傳頁面上的input上的name
    28                    if(item.isFormField()){
    29                        String name = item.getFieldName();
    30                        String value =item.getString("utf-8");
    31                        System.out.println(name);
    32                        System.out.println(value);
    33                        request.setAttribute(name, value);
    34                    }

    35//                    如果是上傳的文件,則取出文件名,
    36                    else{
    37                        String name = item.getFieldName();
    38                        String value = item.getName();
    39                        System.out.println(name);
    40                        System.out.println(value);
    41//                        得到不要地址的文件名,不同的瀏覽器傳遞的參數不同,有的直接傳遞文件名,而又的把文件地址一起傳遞過來
    42//                        使用substring方法可以統一得到文件名而不得到文件位置
    43                        int start = value.lastIndexOf("\\");
    44                        String fileName = value.substring(start + 1);
    45                        request.setAttribute(name, fileName);
    46//                        寫文件到path目錄,文件名問filename
    47                        item.write(new File(path,fileName));
    48                    }

    49                }

    50            }

    51        
    52            catch (FileUploadException e) {
    53                e.printStackTrace();
    54            }
     catch (Exception e) {
    55                e.printStackTrace();
    56            }

    57//            跳轉到顯示結果頁面
    58            request.getRequestDispatcher("upload/result2.jsp").forward(request, response);
    59    }

    60
    61}
    用EL表達式顯示輸出
    1  <body>
    2     用戶名:${requestScope.username } <br>
    3     密  碼:${requestScope.password } <br>
    4     文件1 :${requestScope.file1 }<br>
    5     文件2 :${requestScope.file2 }<br>
    6  </body>

    其實很簡單的設置就可以把中文件上傳,并正確顯示正確的中文文件名。
    在網上找了一點資料,但是都寫得很少,沒有把完整的寫出來。
    所以把它寫出來,讓大家少走點彎路。

    posted on 2008-11-11 12:02 duduli 閱讀(31892) 評論(15)  編輯  收藏 所屬分類: java

    評論

    # re: fileupload上傳中文文件名時亂碼問題 2008-11-11 12:15 低調

    serheaderencoding -- set  回復  更多評論   

    # re: fileupload上傳中文文件名時亂碼問題 2008-11-11 12:23 duduli

    對。就是setheaderencoding(encoding)低調
      回復  更多評論   

    # re: fileupload上傳中文文件名時亂碼問題 2008-11-11 14:38 lyre

    恩,中文的問題,一直都是比較讓人困擾的。  回復  更多評論   

    # re: fileupload上傳中文文件名時亂碼問題[未登錄] 2011-06-22 11:34 Allen

    恩,謝謝了  回復  更多評論   

    # re: fileupload上傳中文文件名時亂碼問題 2012-05-09 13:17 12

    我草,還是沒有解決我的問題,我用的是SmartUpload上傳的。干。  回復  更多評論   

    # re: fileupload上傳中文文件名時亂碼問題 2013-01-17 17:28 8888

    終于搞定了,多謝!!!!!!!  回復  更多評論   

    # re: fileupload上傳中文文件名時亂碼問題 2013-03-04 09:34 pass

    與struts2結合時 那文件名還是亂碼啊!!  回復  更多評論   

    # re: fileupload上傳中文文件名時亂碼問題 2013-04-03 10:36 你兒吃草

    我頂起啊!解決了!  回復  更多評論   

    # re: fileupload上傳中文文件名時亂碼問題 2013-04-22 15:01 不明白

    我用的是jquery file upload上傳文件,亂碼還是沒有解決啊~知道的請告之~謝謝  回復  更多評論   

    # re: fileupload上傳中文文件名時亂碼問題 2013-07-05 17:25 JL___

    天哪好了太感謝了啊  回復  更多評論   

    # re: fileupload上傳中文文件名時亂碼問題[未登錄] 2014-04-02 16:23 aa

    謝謝  回復  更多評論   

    # re: fileupload上傳中文文件名時亂碼問題 2014-04-30 22:40 一半一半

    表示真的可行  回復  更多評論   

    # re: fileupload上傳中文文件名時亂碼問題 2014-09-12 19:00 陌路千里

    太感謝樓主了  回復  更多評論   

    # re: fileupload上傳中文文件名時亂碼問題 2015-05-24 15:55 qwqw

    太感謝樓主了   回復  更多評論   

    # re: fileupload上傳中文文件名時亂碼問題 2016-06-29 23:03 luguo

    太感謝樓主了,一段代碼就解決了!  回復  更多評論   

    <2014年9月>
    31123456
    78910111213
    14151617181920
    21222324252627
    2829301234
    567891011

    導航

    統計

    公告

    welcome to my place.

    常用鏈接

    留言簿(5)

    我參與的團隊

    隨筆分類

    隨筆檔案

    新聞分類

    石頭JAVA擺地攤兒

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    @duduli
    主站蜘蛛池模板: 精品亚洲成a人片在线观看少妇 | 四虎影视永久免费观看网址| 亚洲视频免费观看| 最近2022中文字幕免费视频| 久久精品国产精品亚洲艾| 美女视频黄a视频全免费网站色窝 美女被cao网站免费看在线看 | 亚洲精品第一国产综合精品| 久久精品无码专区免费东京热 | 青春禁区视频在线观看直播免费| 麻豆狠色伊人亚洲综合网站| 青娱乐免费在线视频| 在线观看亚洲AV日韩AV| 国产成人免费A在线视频| 国产AV无码专区亚洲AV琪琪| 亚洲精品视频免费| 国产免费高清69式视频在线观看 | 亚洲欧洲视频在线观看| 可以免费看的卡一卡二| 日韩欧美亚洲国产精品字幕久久久 | 成人片黄网站色大片免费观看cn | 亚洲色欲啪啪久久WWW综合网| 女人18一级毛片免费观看| 亚洲最大的成人网| 亚洲?v无码国产在丝袜线观看| 一级毛片免费播放视频| 亚洲AV本道一区二区三区四区| **真实毛片免费观看| 亚洲乱码中文字幕在线| 亚洲国产成人精品久久久国产成人一区二区三区综 | 亚洲美女视频一区| 成人五级毛片免费播放| 国产激情久久久久影院老熟女免费 | www.亚洲色图.com| 色欲色香天天天综合网站免费| 久久狠狠爱亚洲综合影院| 国产免费人视频在线观看免费 | 精品国产一区二区三区免费| 亚洲人妖女同在线播放| 亚洲一区二区三区在线视频| 91精品手机国产免费| 免费在线观看亚洲|