第14章 文件上传和下载-【千锋教育】Java Web开发实战
2023-03-21
|
33页
|
131人阅读
|
0人下载
教辅
内容正文:
第14章 文件上传和下载
文件上传简介
文件上传的实现
文件下载简介
文件下载的实现
文件上传简介
文件上传的实现
文件下载简介
14.2
14.3
14.1
文件下载的实现
14.4
☞点击查看本小节知识架构
理解
掌握
掌握
掌握
理解文件上传的原理
1
掌握文件下载的原理和实现过程
4
2
掌握Common-fileupload组件的下载
3
掌握Common-fileupdate组件中API的使用
学习目标
销售额 掌握知识 理解知识 熟悉知识 了解知识 2.5 2.5 2.5 2.5
14.1 文件上传的简介
文件上传是Web应用程序中的常见操作,简单来说,它指的是将本地文件通过数据流上传到服务器端的某一个特定的目录下。
在Java Web开发中,文件上传通常按照固定的流程进行,具体如图所示。
从图中可以看出,文件上传要经过表单页面、浏览器、服务器三个环节。首先,浏览器提供给用户一个包含文件上传元素的表单页面,用户选择提交内容后提交请求,文件数据和其他表单信息被浏览器编码并上传至服务器端,服务器端解码上传的内容,提取出HTML表单中的信息,然后将文件数据存入磁盘。
14.1 文件上传的简介
这里需要注意的是,为了使服务器端程序能够正确地读取上传文件的数据,要将<form>元素的method属性设置为POST,enctype属性设置为multipart/form-data。multipart/form-data是一种编码方式,它会使用分界符将数据流中的数据段分开,从而帮助服务器端识别文件内容。在实现文件上传的功能时,表单页面的<form>元素的语法格式如下。
当文件以数据流的形式提交到服务器端之后,如果直接以Servlet程序获取并解析数据流是比较烦琐的。为了节省资源、简化操作,在实际开发中一般使用各种组件来完成数据流的获取和解析。这些组件中封装了许多底层操作并提供了相应的API,开发人员只需调用相应的API即可实现文件上传的功能。
14.1 文件上传的简介
目前比较常用的文件上传组件是Commons FileUpload,该组件是Apache组织提供的一个免费的开源组件,它可以方便地将multipart/form-data类型请求中的各种表单域解析出来,并能实现一个或多个文件的上传,同时也可以限制上传文件的大小等。
14.2 文件上传的实现
14.2.1
Commons FileUpload组件的核心API
返回目录
14.2.2
Commons FileUpload组件的下载
14.2.3
实现单个文件上传
14.2.4
实现多文件批量上传
14.2.5
限制上传文件的类型和大小
14.2 文件上传的实现
14.2.1 Commons FileUpload组件的核心API
为实现文件上传功能,Commons FileUpload组件提供了一系列操作文件的API,其中最重要的是FileItem接口、DiskFileItemFactory类和ServletFileUpload 类,接下来将对Commons FileUpload组件的这三个类或接口进行详细的讲解。
1. FileItem接口
FileItem接口用于封装单个表单字段元素的数据,在程序运行时,实际完成数据封装的是FileItem接口的一个实现类,这里简称为FileItem类。开发人员无须关注FileItem类的封装细节,在使用时直接调用FileItem接口的方法即可获得相关表单字段元素的数据。
14.2 文件上传的实现
14.2.1 Commons FileUpload组件的核心API
FileItem接口的方法如表所示。
14.2 文件上传的实现
14.2.1 Commons FileUpload组件的核心API
2. DiskFileItemFactory类
DiskFileItemFactory类用于将请求消息实体中的每一个文件封装成FileItem对象。在创建FileItem对象时,DiskFileItemFactory类会将较小的FileItem对象保存在内存中,将较大的FileItem对象缓存到磁盘上的临时文件中。这里需要注意的是,存储到磁盘上的内容的大小阈值和创建临时文件的目录是可以设置的。
DiskFileItemFactory类的方法如表所示。
14.2 文件上传的实现
14.2.1 Commons FileUpload组件的核心API
3. ServletFileUpload类
ServletFileUpload类是Commons FileUpload组件处理文件上传的高级API,负责解析客户端请求并将封装好的FileItem对象以List集合的形式返回。
在使用ServletFileUpload对象解析请
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。