IT培训-高端面授IT培训机构
云和教育:云和数据集团高端IT职业教育品牌 全国咨询热线:0371-67988003
课程 请选择课程
    校区 请选择校区
      • 华为
        授权培训中心
      • 腾讯云
        一级认证培训中心
      • 百度营销大学
        豫陕深授权运营中心
      • Oracle甲骨文
        OAEP中心
      • Microsoft Azure
        微软云合作伙伴
      • Unity公司
        战略合作伙伴
      • 普华基础软件
        战略合作伙伴
      • 新开普(股票代码300248)
        旗下丹诚开普投资
      • 中国互联网百强企业锐之旗
        旗下锐旗资本投资
      当前位置:
      首页IT问答正文

      什么是ServletFileUpload类方法?

      • 发布时间:
        2022-12-03
      • 版权所有:
        云和教育
      • 分享:

      ServletFileUpload类

      ServletFileUpload类是Apache组件处理文件上传的核心高级类,通过使用parseRequest(HttpServletRequest)方法可以将HTML中每个表单提交的数据封装成个Fileltem对象,然后以List列表的形式返回。接下来,首先看一下ServletFileUpload类的构造方法如下所示:

       

      ServletFileUpload()

      构造一个未初始化的ServletFileUpload实例对象

       

      ServletFileUpload(FileItemFactory fileItemFactory)

      根据参数指定的FileItemFactory对象创建一个ServletFileUpload对象

      由于在文件上传过程中,FileltemFactory类必须设置,因此,在使用第一个构造方法创建ServletFileUpload对象时,首先需要在解析请求之前调用setFileltemFactory()方法设置fileltemFactory属性。

      了解了ServletFileUpload对象的创建,接下来,学习一下ServletFileUpload类的方法,具体如下。

       

      1. setSizeMax(long sizeMax)和getSizeMax()方法

      setSizeMax()方法继承自FileUploadBase类,用于设置请求消息实体内容(即所有上数据)的最大尺寸限制,以防止客户端恶意上传超大文件来浪费服务器端的存储空间。其中,参数sizeMax以字节为单位。

      另外,对应的getSizeMax()方法用于读取请求消息实体内容所允许的最大值。

       

      2.setFileSizeMax(long fileSizeMax)方法

      setFileSizeMax()方法继承自FileUploadBase类,用于设置单个上传文件的最大尺限制,以防止客户端恶意上传超大文件来浪费服务器端的存储空间。其中,参数fileSizeMax是以字节为单位。

      另外,对应的getFileSizeMax()方法用于获取单个上传文件所允许的最大值。

       

      3. parseRequest(javax.servlet.http.HttpServletRequest req)

      parseRequest()方法是ServletFileUpload类的重要方法,它是对HTTP请求消息体内容进行解析的入口。它解析出FORM表单中的每个字段的数据,并将它们分别包装成独立的Fileltem对象,然后将这些Fileltem对象加入进一个 List类型的集合对象中返回。

       

      4. getltemlterator(HttpServletRequest request)

      getItemIterator()方法和parseRequest()方法基本相同。但是getItemIterator()方法返回的是一个迭代器,该迭代器中保存的不是Fileltem对象,而是FileltemStream对象果希望进一步提高性能,可以采用getItemIterator()方法,直接获得每一个文件项的数据输人流,做底层处理;如果性能不是问题,希望代码简单,则采用parseRequest()方法即可。

       

      5. isMultipartContent(HttpServletRequest req)

      isMultipartContent()方法用于判断请求消息中的内容是否是multipart/form-data类型,如果是,则返回true,否则返回false。需要注意的是,isMultipartContent()方法是静态方法,不用创建ServletFileUpload类的实例对象即可被调用。

       

      6. getFileltemFactory()和setFileltemFactory(FileltemFactory factory)

      这两个方法继承自FileUpload类,分别用于读取和设置fileltemFactory属性。

       

      7. setHeaderEncoding(String encoding)方法和getHeaderEncoding()方法

      这两个方法继承自FileUploadBase类,用于设置和读取字符编码。需要注意的是,如果没有使用setHeaderEncoding()设置字符编码,则getHeaderEncoding()方法返回null,上传组件会采用HttDServletRequest设置的字符编码。但是,如果HttpServletRequest的字符编码和为null,这时,上传组件将采用系统默认的字符编码。