Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的。
Spring 用 Jakarta Commons FileUpload 技术实现了一个 MultipartResolver 实现类:CommonsMultipartResovler。
需要我们导入这两个 jar 包来支持我们类的使用。
commons-fileupload-1.2.1.jar
commons-io-2.0.jar
Spring MVC 上下文中默认没有装配 MultipartResovler,因此默认情况下不能处理文件的上传工作,如果想使用 Spring 的文件上传功能,需现在上下文中配置 MultipartResolver,配置代码如下:
<!-- 配置CommonsMultipartResovler 文件上传--> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="utf-8"></property> <property name="maxUploadSize" value="1024000"></property> </bean>
然后在 jsp 页面配置:
<!-- 文件上传 --> <form action="testFileUpload" method="POST" enctype="multipart/form-data"> File:<input type="file" name="file"/> Desc:<input type="text" name="desc"/> <input type="submit" value="Submit"/> </form>
在 SpringMVCTest 中:
//文件上传 @RequestMapping("/testFileUpload") public String TestFileUpload(@RequestParam("desc") String desc,@RequestParam("file") MultipartFile file) throws IOException{ System.out.println("Desc:"+desc); System.out.println("FileName:"+file.getOriginalFilename()); System.out.println("InputStream:"+file.getInputStream()); return "success"; }
实现效果:
上传的文件名为 abc.txt,Desc 中填写 123
控制台输出:
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于