『SpringMVC』实现文件上传功能

这两天个人项目,需要上传文件功能,我后台使用的SpringMVC框架进行请求转发,在此整理下功能实现过程。

想要上传文件到后台,先要通过前台表单提交文件。

  • 特别注意,在form标签中加上了enctype="multipart/form-data"属性,设置这个属性,才可以向服务器上传文件。
    如果不写这个属性,默认的传输格式是enctype="application/x-www-form-urlencoded"

  • 使用SpringMVC框架的一个好处是,我们提交表单,只要提交数据的标签name属性对应上后台对应的实体类字段名,就可以直接在后台接受实体类,实体类中包含着提交的信息。
    但是,如果现在提交表单,你会发现在后台的Controller中接收的值全部是null,因为enctype="multipart/form-data"改变了传输细节,后台接受自然也和默认时不同。
    所以在请求转发配置文件中,需要配置



这样SpringMVC就可以正确映射表单数据到后台实体类了。
这还需要引入两个jar包commons-fileupload-1.3.1.jarcommons-io-2.2.jar,如果使用Maven直接引入依赖:


            commons-fileupload
            commons-fileupload
            1.3.1

  • 表单的数据能正常接收了,还需要接收上传的文件。
    在后台代码中,传入参数再加上MultipartFile,这就是发送到服务器的文件,比如:
public ModelAndView articleList(MultipartFile contentFile, HttpServletRequest request,Article article) {}

其中MultipartFile参数名称,也要和前台name对应,这个类里有各种操作文件的方法,根据需要自行查询API即可。

如此就完成了上传文件到后台的功能。




文章内容为个人理解,如有错误欢迎指出。

邮箱:[email protected]

你可能感兴趣的:(『SpringMVC』实现文件上传功能)