文件上传介绍:

1.0 什么是文件上传:

    将客户端数据以文件形式封装,通过网络协议发送到服务器端。
    在服务器端解析数据,最终在服务端硬盘上作为真实的文件保存

2.0 在客户端,如何将一个文件类型的数据发送到服务器端:

    1.条件1,要求浏览器选择的发送方式必须是【post】
    2.条件2,必须至少拥有一个file类型表单域控件
            (1)浏览用户机器中文件系统
                               (2)作为请求参数,关联文件类型的数据
    3.条件3 采用网络协议不能是http协议
            采用http协议升级版本RFC-1867协议  

3.0 服务器端如何解析数据:

    1.request: request只能解析读取http协议中的请求参数数据
                       无法解析RFC-1867协议中数据 

    2.FileUpload.jar :apache提供商业应用jar,专门解析RFC-1867协议中数据.

4.0 FileUpload.jar解析数据,生成文件的流程:

     1.【数据解析工具类】 将 RFC-1867协议中包裹的每一个请求参数及其内容解析生成【临时文件 xxx.temp】  
     2.【磁盘工厂工具类】负责解析生成临时文件保存到服务器中指定硬盘位置 tomcat/temp/xxx.temp
     3.取得当前临时文件的【基本信息-----------上传文件名称.文件类型】 test.xls
     4.根据获得上传文件名称.文件类型,在服务器端创建一个对应的【空文件--test.xls】
     5.通过I/O流,将临时文件保存数据导出到【空文件】
     6.手动销毁调用临时文件

5.0 FileUpload.jar提供API

      1.DiskFileItemFactory:磁盘工厂工具类 
            实际上就是FileOutputStream封装版。
            负责解析生成临时文件保存到服务器中指定硬盘位置  
      2.ServletFileUpload:【数据解析工具类】
            代替request,解析RFC-1867协议中请求参数,将它遇到的每一个请求参数,解析成一个临时文件
            研发时,实在实验室模拟了RFC-1867协议的特征进行处理的。但是RFC-1867并没有为 【数据解析工具类】提供一个开放的接口                                   

      3.DiskFileItem: 描述被加载到内存中临时文件,因此这个类被叫做【临时文件类型】 实现FileItem

你可能感兴趣的:(文件上传介绍:)