posts - 60,comments - 71,trackbacks - 0

          1,  jsp 頁(yè)面的代碼

          <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
          <html>
           
            
          <body> 
                                                           
          <!-- encType 必不可少 -->
              
          <form action="upImgServlet" method="post" encType=multipart/form-data>
                  
                  描述:
                  
          <input type="text" name="description"/><br/>選擇圖片:
                  
          <input type="file" name="img"/>
                  
          <input type="submit" value="提交"/>
              
          </form>
            
          </body>
          </html>

          2, UpImgServlet 的代碼.

           


          public class UpImgServlet extends HttpServlet {

              
          public void destroy() {
                  super.destroy(); 
          // Just puts "destroy" string in log
                  
          // Put your code here
              }


              
          public void doGet(HttpServletRequest request, HttpServletResponse response)
                      throws ServletException, IOException 
          {

                  response.setContentType(
          "text/html");
                  request.setCharacterEncoding(
          "UTF-8");
                  response.setCharacterEncoding(
          "UTF-8");

                  
          // org.apache.commons.fileupload.DiskFileUpload 是一個(gè)開(kāi)源包里的。
                  DiskFileUpload du = new DiskFileUpload();
                  du.setSizeMax(
          4194304); // 設(shè)置最大文件尺寸,這里是4MB
                  du.setSizeThreshold(4096);// 設(shè)置緩存區(qū)大小 ,4 kb;
                  
          // up 為 /WebRoot 下的 一個(gè)目錄
                  du.setRepositoryPath(request.getSession().getServletContext()
                          .getRealPath(
          "/up"));// 設(shè)置緩存目錄

                  
          // 得到所有文件
                  try {
                      List list 
          = du.parseRequest(request);
                      Iterator it 
          = list.iterator();
                      
          while (it.hasNext()) {
                          org.apache.commons.fileupload.FileItem fileItem 
          = (FileItem) it
                                  .next();

                          
          // 是否為表單元素。如文本框 等等。
                          if (fileItem.isFormField()) {
                              String name 
          = fileItem.getFieldName();
                          
                              
          //通過(guò)流 用來(lái)讀取表單元素里的內(nèi)容。
                              java.io.BufferedReader br = new BufferedReader(
                                         
          new InputStreamReader(fileItem.getInputStream()));
                              
                              
          //如果還有除文件域以外的其他表單元素 就用 if()進(jìn)行名字一一匹配。
                              if(name.equals("description")){
                                  String contents 
          =  br.readLine();
                                  System.
          out.println(contents);
                                  
                              }

                              
                          }

                          
          // 文件域
                          else {
                              
          // 獲得文件名,這個(gè)文件名包括路徑:
                              String fileName = fileItem.getName();
                              
          int index = fileName.lastIndexOf('.');
                              fileName 
          = fileName.substring(index);
                              fileName 
          = this.getFileName() + fileName;                                    //文件保存位置 
                              fileItem.write(new File(request.getSession().getServletContext().getRealPath("/img")+ "\" + fileName));
                              
                              System.
          out.println("上傳成功");
                          }

                      }


                  }
           catch (FileUploadException e) {
                      
          // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
           catch (Exception e) {
                      
          // TODO Auto-generated catch block
                      e.printStackTrace();
                  }


                  PrintWriter 
          out = response.getWriter();

                  
          out.flush();
                  
          out.close();
              }


              
          public void doPost(HttpServletRequest request, HttpServletResponse response)
                      throws ServletException, IOException 
          {
                  
          this.doGet(request, response);
              }


              
          public void init() throws ServletException {
                  
          // Put your code here
              }


              
          // 以日期 獲得一個(gè)文件名。(不重復(fù));
              String getFileName() {
                  java.util.Calendar cal 
          = Calendar.getInstance();

                  
          int year = cal.get(Calendar.YEAR);
                  
          int mon = cal.get(Calendar.MONTH);
                  
          int day = cal.get(Calendar.DATE);
                  
          int hour = cal.get(Calendar.HOUR);
                  
          int min = cal.get(Calendar.MINUTE);
                  
          int sec = cal.get(Calendar.SECOND);
                  
          int mi = cal.get(Calendar.MILLISECOND);

                  System.
          out.println("mon" + mon);
                  System.
          out.println("day" + day);
                  
          return "" + year + mon + day + hour + min + sec + mi;

              }


          }

          基于 Eclipse3.2 開(kāi)發(fā).

          在  WebRoot 下新建 up  和 img  目錄.

          其中 up 為緩存目錄.   img 為上傳的 文件保存的目錄.

          posted on 2008-05-24 09:48 henry1451 閱讀(351) 評(píng)論(0)  編輯  收藏 所屬分類: Java技術(shù)
          主站蜘蛛池模板: 佛冈县| 东台市| 遂溪县| 丽水市| 高要市| 财经| 镇雄县| 祁门县| 丰台区| 德州市| 运城市| 漳州市| 香港| 盐池县| 依兰县| 招远市| 开江县| 松桃| 延寿县| 丹棱县| 元江| 奈曼旗| 通辽市| 柳林县| 陵川县| 洞头县| 永平县| 呼和浩特市| 上栗县| 延寿县| 独山县| 班戈县| 大埔县| 汤原县| 裕民县| 上饶市| 邯郸县| 罗山县| 关岭| 招远市| 巴南区|