码迷,mamicode.com
首页 > 其他好文 > 详细

文章测试4

时间:2018-08-23 19:42:01      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:prope   执行   讲解   格式   封装   multi   art   jsp   efault   

文件的上传和下载是项目开发中最常用的功能,例如图片的上传和下载、邮件附件的上传和下载等。

接下来,将对Spring MVC环境中文件的上传和下载进行详细的讲解。

 

 

一.文件上传

多数文件上传都是通过表单形式提交给后台服务器的,因此,要实现文件上传功能,就需要提供一个文件上传的表单,而该表单必须满足以下3个条件:

1)form表单的method属性设置为post

2)form表单的enctype属性设置为multipart/form-data

3)提供<input type=”file” name=”filename” multiple=”multiple” />的文件上传输入框。

文件上传表单的实例代码如下:

<form action="uploadUrl" method="post" enctype="multipart/form-data">
<input type="file" name="filename" multiple="multiple" />
<input type="submit" value="文件上传" />
</form>

Spring MVC为文件上传提供了直接的支持,这种支持是通过MultipartResolver(多部件解析器)对象实现的。MultipartResolver是一个接口对象,需要通过它的实现类CommonsMultipartResolver来完成文件上传工作。在Spring MVC中使用MultipartResolver对象非常简单,只需要在配置文件中定义MultipartResolver接口的Bean即可,其具体配置方式如下:

技术分享图片
<bean id=”multipartResolver” class=”org.springframework.web.multipart.commons.CommonsMultipartResolver”>
<!-- 设置请求编码格式,必须与JSP中的pageEncoding属性一致 -->
<property name=”defaultEncoding” value=”UTF-8” />
<!-- 设置允许上传文件的最大值(2MB),单位为字节 -->
<property name=”maxUploadSize” value=”2097152” />
</bean>
技术分享图片

 

通过<property>元素可以对文件解析类CommonsMultipartResolver的如下属性进行配置。

1)maxUploadSize:上传文件最大长度(以字节为单位)

2)maxInMemorySize:缓存中的最大尺寸

3)defaultEncoding:默认编码格式

4)resolverLazily:推迟文件解析,以便在Controller中捕获文件大小异常

注:在配置CommonsMultipartResolver时必须指定该Bean的id为multipartResolver

 

需要导入支持文件上传的相关JAR包,通过Apache官网地址“http://commons.apache.org/”下载(进入该网址后,在Apache Conmmons Proper下方列表的Components列中找到FileUpload和IO,单击链接后,即可在打开页面找到下载链接)具体如下:

1)commons-fileupload-1.3.2.jar

2)commons-io-2.5.jar

 

当完成页面表单和文件上传解析器的配置后,在Controller中编写文件上传的方法即可实现文件上传。文件上传的方法代码如下:

技术分享图片
@Controller
    public class FileUploadController {
        @RequestMapping("fileUpload")
        public String handleFormUpload(@RequestParam("name") String name,@RequestParam("filename") MultipartFile file,...) {
            if(!file.isEmpty()) {
                //具体的执行方法
                ...
                return "uploadSuccess";//跳转到成功页面
            }
            return "uploadFailure";//跳转到失败页面
        }
    }
技术分享图片

 

在上述代码中,包含一个MultipartFile接口类型的参数file,上传到程序中的文件就是被封装在该参数中的。org.springframework.web.multipart.MultipartFile接口中提供了获取上传文件、文件名称等方法,这些方法及说明如下表01所示:

文章测试4

标签:prope   执行   讲解   格式   封装   multi   art   jsp   efault   

原文地址:https://www.cnblogs.com/ldebug/p/9525387.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!