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
控制台输出:
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于