<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方法可以統(tǒng)一得到文件名而不得到文件位置
    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

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

    <2015年5月>
    262728293012
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    導航

    統(tǒng)計

    公告

    welcome to my place.

    常用鏈接

    留言簿(5)

    我參與的團隊

    隨筆分類

    隨筆檔案

    新聞分類

    石頭JAVA擺地攤兒

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    @duduli
    主站蜘蛛池模板: 黄色永久免费网站| 国产va精品免费观看| 久久精品国产亚洲av日韩| 永久免费av无码不卡在线观看| 亚洲AV综合永久无码精品天堂| 亚洲熟伦熟女新五十路熟妇| 久久久久av无码免费网| 污网站免费在线观看| 亚洲酒色1314狠狠做| 亚洲AV无码一区二区三区国产 | 日韩免费视频观看| 国内精品免费久久影院| 亚洲最大成人网色香蕉| 国产亚洲人成A在线V网站| 毛片视频免费观看| 日本免费中文视频| 日韩成人毛片高清视频免费看| 亚洲精品免费在线视频| 国内精品久久久久久久亚洲| 欧亚精品一区三区免费| 青青草无码免费一二三区| 成年大片免费视频播放一级| 亚洲香蕉久久一区二区| 国产亚洲精品a在线观看app| 在线免费观看国产视频| 99久久精品日本一区二区免费| sss日本免费完整版在线观看| 亚洲娇小性xxxx| 久久精品亚洲综合专区| 亚洲人成电影网站国产精品| 男男AV纯肉无码免费播放无码| 免费一区二区三区| 国产精品免费大片一区二区| 亚洲爆乳AAA无码专区| 亚洲国产精品成人精品软件| 亚洲av无码乱码国产精品| 亚洲AV无码一区二区三区国产| 成人免费视频一区| 无遮免费网站在线入口| 6080午夜一级毛片免费看| 成人爽a毛片免费|