> 文档中心 > SSM框架学习9-springmvc文件上传

SSM框架学习9-springmvc文件上传

目录

1. 导入文件上传的工具依赖

2. 配置文件上传的解析器

3. 编写测试

3.1单文件上传

3.2多文件上传


1. 导入文件上传的工具依赖

在web.xml中配置:

         commons-fileupload   commons-fileupload   1.3.1               commons-io   commons-io   2.4      

2. 配置文件上传的解析器

在spring-mvc中配置:

          

3. 编写测试

接下来两个例子来说明用法

3.1单文件上传

首先编写好表单如下:

    name:
file:

当要上传文件时,注意 enctype的设置,此时后台获取的方法:

    @RequestMapping("/quick14")    @ResponseBody    public void save14(String username, MultipartFile upload) throws IOException { System.out.println(username); String filename=upload.getOriginalFilename();//获得源文件的完整名字,含后缀 upload.transferTo(new File("D:\\image\\" + filename));//将这个文件转存到另一个地方,这个地址是基于当前主机的绝对地址,记住最后要加\\    }

首先我们接收String参数很简单形参和表单name匹配即可,然后我们的file数据在springmmvc里也设置了一个对象即 MultipartFile,然后形参与表单那么匹配即可

然后我们需要得到这个源文件的名字——getOriginalFilename(),通过这个方法即可,

然后就是通过——transferTo(new File("绝对路径\\"+文件名))

将文件写入本地,因为有了一个MultipartFile对象,使我们获得文件数据并操作它变得简易。

3.2多文件上传

第一种方式就是多设置几个上传文件的input,将name设置成不同的,然后后台对象增多,一样的方法执行,这里就不多赘述。

第二种方式就是通过数组的方式,也就是将MultipartFile对象设为数组来接收请求数据:

就像这样,我们只需要多uploadFile这个数组循环操作即可

这种方式下,表单中文件传输的input的name就都设为相同:

 这就跟上一章讲的数组的请求传参一样,name相当于键都设为同一值,这时框架会自动匹配形参里面的这个值,而这个刚好是一个文件数组形式的对象,所以就依次往数组里添加文件对象。

 

 

毒蛇网