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

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

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

    tbwshc

    總結一下今天使用fileupload組件通過Servelt上傳文件出現的幾個小問題

    這段時間由于要要成一個項目中的一個小功能,使用到文件的上傳和下載,以前學習過一點,不過沒有深入學習,今天看了“風中葉”張龍老師講解的通過Servletb上傳文件,跟著他將的內容,回顧手敲了那些代碼,不過出現了幾個小問題;
    1、把上傳的文件寫入到指定目錄的時候,出現了磁盤拒絕訪問的問題。
          解決:根據mark的回復,試了下,分析出現的原因:
                    item.write(new File(path));                 //原來只寫入到目錄,沒有指定寫入的是哪個文件
                    item.write(new File(path,fileName));     //修改后,指定寫入的是fileName這個文件
     
    2、上傳文件出現中文亂碼的問題:
          由于jsp文件默認的編碼是UTF-8,所以上產出現中文名稱的文件時,會出現中文亂碼。
          這個問題在網上找到解決的途徑:http://m.tkk7.com/duduli/archive/2008/11/11/239845.html
        解決思路:
              ServletFileUpload upload = new ServletFileUpload(factory);
              upload.setHeaderEncoding("UTF-8");
         只需要通過ServeltFileUpload指定編碼即可
     
    3、關于“Apache FileUpload文件上傳組件API解析”可以在這里查看到:http://ajava.org/blog-273-584.html
          FileUpload 相關的 API詳解。
     
    以下是今天寫的Servelt類,完成的功能:文件上傳
    package com.way.fileupload.servlet;
    import java.io.File;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.List;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    public class FileUploadServelt extends HttpServlet {
            public void doGet(HttpServletRequest request, HttpServletResponse response)
                            throws ServletException, IOException {
                   
                    this.doPost(request, response);
            }
           
            public void doPost(HttpServletRequest request, HttpServletResponse response)
                            throws ServletException, IOException {
                           
                            DiskFileItemFactory factory = new DiskFileItemFactory();
                           
                            //String path = request.getRealPath("/UploadFiles");
                            String path = "D:" + File.separator+ "upload" + File.separator;
                           
                            factory.setSizeThreshold(1024*1024);
                           
                            ServletFileUpload upload = new ServletFileUpload(factory);
                            upload.setHeaderEncoding("UTF-8");
                            try {
                                    List<FileItem> list = upload.parseRequest(request);
                                   
                                    for(FileItem item : list){
                                           
                                            String name = item.getFieldName();
                                           
                                            if(item.isFormField()){
                                                   
                                                    String value = item.getString("UTF-8");
                                                   
                                                    ///System.out.println("name:" + name + "  value:" + value);
                                                   
                                                    request.setAttribute(name, value);
                                            }else{
                                                   
                                                    String value = item.getName();
                                                   
                                                    int start = value.lastIndexOf("\\");
                                                   
                                                    String fileName = value.substring(start + 1);
                                                    //String fileName = new String(file.getBytes("ISO-8859-1"),"UTF-8");
                                                    request.setAttribute(name, fileName);
                                                    //StringBuffer sb = new StringBuffer();
                                                    //sb.append(path);
                                                    //sb.append(fileName);
                                                    item.write(new File(path,fileName));
                                            }
                                    }
                            } catch (Exception e) {
                                    e.printStackTrace();
                            }
                           
                            request.getRequestDispatcher("filetbUploadSuccess.jsp").forward(request, response);
            }
           
    }

    posted on 2012-06-28 13:24 chen11-1 閱讀(1191) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 人妻无码中文字幕免费视频蜜桃| 亚洲码一区二区三区| 亚洲中文字幕久久精品无码VA| 黄色网址免费大全| 亚洲福利视频网站| 免费视频爱爱太爽了| 九九精品成人免费国产片| 成人性生交大片免费看无遮挡| 亚洲一级毛片在线播放| A在线观看免费网站大全| 亚洲成av人影院| 88av免费观看| 自拍偷自拍亚洲精品情侣| GOGOGO高清免费看韩国| 国产精品免费电影| 中美日韩在线网免费毛片视频| 国产又黄又爽又猛免费app| 亚洲线精品一区二区三区影音先锋| jizz免费一区二区三区| 亚洲AV人人澡人人爽人人夜夜 | 亚洲国产精品嫩草影院在线观看| 国产日韩AV免费无码一区二区| 亚洲美女大bbbbbbbbb| 黄页网址大全免费观看12网站| 亚洲女同成人AⅤ人片在线观看| 中文无码亚洲精品字幕| 最近2019免费中文字幕视频三| 亚洲日本香蕉视频| 国产成人免费全部网站| 成av免费大片黄在线观看| 四虎永久成人免费影院域名| 亚洲一本之道高清乱码| 国产成人综合久久精品免费| 91精品成人免费国产| 亚洲日韩国产精品乱-久| 亚洲精品国产精品乱码不卞| 99热这里只有精品6免费| 国产亚洲真人做受在线观看| 日韩中文字幕精品免费一区| 黄床大片30分钟免费看| 亚洲系列中文字幕|