<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)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 未满十八私人高清免费影院| 久久久久亚洲精品美女| 中文文字幕文字幕亚洲色| 99re视频精品全部免费| 久久精品亚洲中文字幕无码麻豆| 永久免费av无码入口国语片| 人人狠狠综合久久亚洲88| 黄色网址在线免费| 亚洲尹人九九大色香蕉网站| 18以下岁毛片在免费播放| 亚洲另类春色校园小说| 最近免费中文字幕4| 亚洲欧美中文日韩视频| 国产人成免费视频| 久久国产精品免费一区| 亚洲av日韩av激情亚洲| 91久久精品国产免费直播| 亚洲中文字幕乱码AV波多JI| 又爽又高潮的BB视频免费看| 一本久久免费视频| 亚洲高清在线视频| 四虎在线成人免费网站| 久久精品熟女亚洲av麻豆| 免费永久国产在线视频| a级毛片免费在线观看| 亚洲精品国产福利片| 热99re久久免费视精品频软件| 在线观看特色大片免费网站| 亚洲av综合avav中文| 国产大片免费网站不卡美女 | 亚洲国产精品专区在线观看 | 亚洲AV无码久久| 午夜国产精品免费观看| WWW国产亚洲精品久久麻豆| 亚洲老妈激情一区二区三区| 国产黄色免费网站| 人妻18毛片a级毛片免费看| 亚洲美女在线观看播放| 免费一级e一片在线播放| 久久一区二区三区免费播放| 亚洲av日韩综合一区二区三区|