28 文件上传、文件下载

一、概述

1.1

  将客户端的文件通过io流传输到服务器上

1.2 文件上传技术

    JspSmartUpload  : 应用在jsp技术文件上传

    FileUpload : 要学习的文件上传的组件

    Servlet3.0------->只支持servlet3.0之后

    框架也提供了文件上传的组件

    

1.3 文件上传原理

抓包

28 文件上传、文件下载

28 文件上传、文件下载

28 文件上传、文件下载

 

 

28 文件上传、文件下载

 

 

 

源码————>maven项目

 

 

文件上传、下载参考

https://www.cnblogs.com/xdp-gacl/p/4200090.html

 

    1. Api的学习

      1. DiskFileItemFactory

构造方法:

         DiskFileItemFactory() 

     DiskFileItemFactory(int sizeThreshold, java.io.File repository) 

参数:

     int sizeThreshold : 设置缓冲区的大小

    File repository : 临时目录

成员方法:

    setSizeThreshold(int sizeThreshold) 

     setRepository(java.io.File repository) 

      1. ServletFileUpload : 解析request对象的

构造方法:

         ServletFileUpload(FileItemFactory fileItemFactory) 

成员方法:

解析request对象

 

List<FileItem>

parseRequest(HttpServletRequest request) 

 

判断enctype属性设置是否为multipart/form-data

 

static boolean

isMultipartContent(HttpServletRequest request) 

 

如果获取文件名出现乱码问题,就可以使用下面方法进行设置

void setHeaderEncoding(String encoding)

      1. FileItem : 输入项(可能是普通输入项,也可能是文件上传输入项)

普通输入项:

         获取字段的名称

 

String

getFieldName() 

 

获取文本输入内容

 

String

getString() 

String

getString(java.lang.String encoding) 

 

文件上传项:

获取文件名称

         

 

String

getName() 

 

获取文件内容

 

InputStream

getInputStream()