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

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

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

    Hibernate進行時

    有關Hibenrate及其相關工具的主頁
    隨筆 - 0, 文章 - 16, 評論 - 29, 引用 - 0
    數據加載中……

    上傳工具Cos的源代碼學習

    使用Cos時,可以使用兩個類來進行上傳工作:
    1.  MultipartRequest
    2.  MultipartParser
       一般情況下會使用MultipartRequest類,我感覺它比MultipartParser更方便一些(事實上MultipartRequest封裝了MultipartParser),在構造MultipartRequest實例時,構造了MultipartParser實例(構造parser的過程取得了上傳的數據流引用,但并未真正讀?。?。
       然后通過MultipartParser的readNextPart()方法,從request流中讀取數據,區別出流中的參數域和文件域,如果是參數的話用ParamPart類封裝;如果是文件的話用FilePart封裝。
       此時如果設置了重命名策略的話,則在服務器端新建一個新命名的空文件,然后調用FilePart的writeTo(saveDir)方法將流數據寫到磁盤中。至此,文件上傳完成。

    下面是使用MultipartRequest的上傳類示例:

    /*
     * DemoUploadServlet.java
     *
     * Example servlet to handle file uploads using MultipartRequest for
     * decoding the incoming multipart/form-data stream
     
    */

     
    import java.util.Enumeration;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;

    import com.oreilly.servlet.MultipartRequest;
    import com.oreilly.servlet.multipart.DefaultFileRenamePolicy;

    public class DemoRequestUploadServlet extends HttpServlet {
      
    private String dirName;
      
      
    public void init(ServletConfig config) throws ServletException {
        
    super.init(config);
        
    // read the uploadDir from the servlet parameters
        dirName = config.getInitParameter("uploadDir");
        
    if (dirName == null{
          
    throw new ServletException("Please supply uploadDir parameter");
        }

      }

      
      
    public void doPost(HttpServletRequest request, HttpServletResponse response)
          
    throws ServletException, IOException {
        PrintWriter out 
    = response.getWriter();
        response.setContentType(
    "text/plain");
        out.println(
    "Demo Upload Servlet using MultipartRequest");
        out.println();
          
        
    try {
          
    // Use an advanced form of the constructor that specifies a character
          
    // encoding of the request (not of the file contents) and a file
          
    // rename policy.
          MultipartRequest multi = 
            
    new MultipartRequest(request, dirName, 10*1024*1024,
                                 
    "ISO-8859-1"new DefaultFileRenamePolicy());
            
          out.println(
    "PARAMS:");
          Enumeration params 
    = multi.getParameterNames();
          
    while (params.hasMoreElements()) {
            String name 
    = (String)params.nextElement();
            String value 
    = multi.getParameter(name);
            out.println(name 
    + "=" + value);
          }

          out.println();
                  
          out.println(
    "FILES:");
          Enumeration files 
    = multi.getFileNames();
          
    while (files.hasMoreElements()) {
            String name 
    = (String)files.nextElement();
            String filename 
    = multi.getFilesystemName(name);
            String originalFilename 
    = multi.getOriginalFileName(name);
            String type 
    = multi.getContentType(name);
            File f 
    = multi.getFile(name);
            out.println(
    "name: " + name);
            out.println(
    "filename: " + filename);
            out.println(
    "originalFilename: " + originalFilename);
            out.println(
    "type: " + type);
            
    if (f != null{
              out.println(
    "f.toString(): " + f.toString());
              out.println(
    "f.getName(): " + f.getName());
              out.println(
    "f.exists(): " + f.exists());
              out.println(
    "f.length(): " + f.length());
            }

            out.println();
          }

        }
     
        
    catch (IOException lEx) {
          
    this.getServletContext().log(lEx, "error reading or saving file");
        }

      }

    }

    下面是使用MultipartParser的代碼示例:
    /*
     * DemoParserUploadServlet.java
     *
     * Example servlet to handle file uploads using MultipartParser for
     * decoding the incoming multipart/form-data stream
     
    */

     
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;

    import com.oreilly.servlet.multipart.*;

    public class DemoParserUploadServlet extends HttpServlet {
      
    private File dir;
      
      
    public void init(ServletConfig config) throws ServletException {
        
    super.init(config);
        
    // Read the uploadDir from the servlet parameters
        String dirName = config.getInitParameter("uploadDir");
        
    if (dirName == null{
          
    throw new ServletException("Please supply uploadDir parameter");
        }

        dir 
    = new File(dirName);
        
    if (! dir.isDirectory()) 
          
    throw new ServletException("Supplied uploadDir " + dirName +
                                     
    " is invalid");
        }

      }

      
      
    public void doPost(HttpServletRequest request, HttpServletResponse response)
          
    throws ServletException, IOException {
        PrintWriter out 
    = response.getWriter();
        response.setContentType(
    "text/plain");
        out.println(
    "Demo Upload Servlet using MultipartParser");
        out.println();
          
        
    try {
          MultipartParser mp 
    = new MultipartParser(request, 10*1024*1024); // 10MB
          Part part;
          
    while ((part = mp.readNextPart()) != null{
            String name 
    = part.getName();
            
    if (part.isParam()) {
              
    // it's a parameter part
              ParamPart paramPart = (ParamPart) part;
              String value 
    = paramPart.getStringValue();
              out.println(
    "param: name=" + name + "; value=" + value);
            }

            
    else if (part.isFile()) {
              
    // it's a file part
              FilePart filePart = (FilePart) part;
              String fileName 
    = filePart.getFileName();
              
    if (fileName != null{
                
    // the part actually contained a file
                long size = filePart.writeTo(dir);
                out.println(
    "file: name=" + name + "; fileName=" + fileName +
                  
    ", filePath=" + filePart.getFilePath() + 
                  
    ", contentType=" + filePart.getContentType() + 
                  
    ", size=" + size);
              }

              
    else 
                
    // the field did not contain a file
                out.println("file: name=" + name + "; EMPTY");
              }

              out.flush();
            }

          }

        }
     
        
    catch (IOException lEx) {
          
    this.getServletContext().log(lEx, "error reading or saving file");
        }

      }

    }

    posted on 2006-02-13 09:58 caixuetao 閱讀(1335) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 又粗又硬又黄又爽的免费视频 | a免费毛片在线播放| 成年女人免费视频播放体验区| 91午夜精品亚洲一区二区三区| 中文字幕在线免费| 中文字幕亚洲男人的天堂网络| 成人毛片18女人毛片免费96| 亚洲国产成人久久一区二区三区| 日本无吗免费一二区| 香港经典a毛片免费观看看| 国产99视频免费精品是看6| 免费人成动漫在线播放r18| 亚洲人成人一区二区三区| 成人精品一区二区三区不卡免费看 | 亚洲AV日韩综合一区| 亚洲第一区精品观看| www在线观看播放免费视频日本| 亚洲精品老司机在线观看| 热久久这里是精品6免费观看| 亚洲四虎永久在线播放| 久久久久久国产a免费观看黄色大片| 在线a亚洲老鸭窝天堂av高清| 免费国产在线观看| 三年片在线观看免费| 国产成人精品日本亚洲专| 四虎在线播放免费永久视频 | 国产色爽免费无码视频| 久久久无码精品亚洲日韩按摩 | 亚洲AV一区二区三区四区| 亚洲成AⅤ人影院在线观看| 免费无码H肉动漫在线观看麻豆 | 黄页网站在线免费观看| 亚洲日本va中文字幕久久| 免费福利视频导航| 乱淫片免费影院观看| 亚洲天堂一区二区三区四区| 免费女人18毛片a级毛片视频| 香蕉免费一区二区三区| 亚洲av无码偷拍在线观看| 亚洲精品无码成人AAA片| 性感美女视频免费网站午夜|