2020-03-30

一、什么是文件上传

    文件上传:将本地的文件通过流写入到服务器的过程

二、文件上传的技术

    JSPSmartUpload:应用在JSP上的文件上传和下载的组件

    FileUpload:应用在Java环境上的文件上传的功能

    Servlet3.0:提供了文件上传的功能

    Struts2:提供了文件上传的功能

三、文件上传的三个要素

    1、表单的提交的方式需要是POST(因为GET有大小限制)

    2、表单中需要有元素,还需要有name属性和值

    3、表单属性必须设置enctype="multipart/form-data"

四、文件上传的原理分析

五、DiskFileItemFactory:磁盘文件项工厂

构造方法:

DiskFileItemFactory()

DiskFileItemFactory(int sizeThreshold, File repository)

sizeThreshold:用来设置文件上传的缓冲区的大小,默认值为10KB

repository:用来设置文件上传过程中所产生的临时文件存放的路径

方法:

setRepository(File repository):设置缓冲区的大小

setSizeThreshold(int sizeThreshold):设置临时文件存放的路径

六、ServletFileUpload:核心解析类

构造方法

ServletFileUpload()

ServletFileUpload(FileItemFactory fileItemFactory)

方法

isMultipartContent(HttpServletRequest request)

是用来判断表单的enctype属性是否正确

parseRequest(HttpServletRequest request)

解析Request对象,返回一个List集合(每个部分的对象FileItem)

(long fileSizeMax)

用来设置单个文件的大小

setSizeMax(long sizeMax)

用来设置上传的文件的总大小

七、ileItem文件项

方法

isFormField()

判断表单项是普通项还是文件上传项,如果为true代表是普通项

普通项的方法

getFieldName()

用来获得普通项的名称

getString()

用来获取普通项的值

getString(String encoding)

用来获取普通项的值(可解决乱码问题)

文件上传项

getName()

获得上传文件的文件名的方法

getInputStream()

获得上传文件的文件内容的方法

getSize()

获得上传文件的文件大小

delete()

删除文件上传过程中的临时文件

你可能感兴趣的:(2020-03-30)