第十六章 文章上传和下载
2020-04-30 本文已影响0人
Y_Jaaao
文件上传
-
多数文件上传都是通过表单形式提交给后台服务器,因此,要实现文件上传,就要提供一个文件上传的表单,而该表单必须满足的条件有3个,如下:
文件上传表单示例 - 当form表单的enctype属性为multipart/form-data时,浏览器就会采用二进制流处理表单数据,服务器端就会对文件上传的请求进行解析处理。Spring MVC通过MultipartResolver实现文件上传。MultipartResolver是一个接口对象,需要通过它的实现类CommonsMultipartResolver来完成文件上传
MultipartResolver配置实例 -
还通过<property>元素配置了编码格式以及允许上传文件的大小。通过<property>元素可以对文件解析器类CommonsMultipartResolver的如下属性进行配置:
CommonsMultipartResolver的属性配置
注意
文件上传代码
如何编程实现文件上传功能?实现方式与流程
- 配置文件上传解析器 MultipartResolver;
- 设置解析器属性,比如设置请求编码格式,解决中午乱码问题;
- 使用@Controller标注,编写控制器类;
- 使用@RequestMapping("/fileUpload")标注,开发上传函数,实现文件上传后的判断、保存功能;
- 编写客户端jsp文件,利用表单Form,指定第4步的路径,设置表单的上传属性。最重要的是method属于与enctype属性
文件下载
文件下载步骤
-
1、在 客户端页面使用一个文件下载的超链接,该链接的href属性要指定下载的方法及文件名(需要先在文件下载目录中添加一个名为“1.jpg”的文件)
-
2、在后台使用Spring MVC提供的ResponseEntity类型对象完成文件下载,它可以很方便的定义返回的HttpHeaders对象和HttpStatus对象,通过对这两个对象的设置,即可完成下载文件时所需的配置信息
-
文件下载中的ResponseEntity对象与@ResponseBody注解类似,用于直接返回结果对象
如何解决中文名文件下载乱码问题
- 在前端页面发送请求前先对中文名进行统一编码,然后在后台控制器类中对文件名称进行相应的转码。