springMVC实现文件上传
了解springMVC详见:
springMVC实现上传功能也不难。只要理解springMVC的原理和逻辑,学习起来就比较轻松。
springMVC逻辑基础理解文章:https://blog.csdn.net/qq_41879385/article/details/82858489
注:本篇代码是跟着上一篇代码写在一起的的。
MultipartResolver
springMVC文件上传是通过即插即用的MultipartResolver来实现的。
添加文件上传的jar包;
1.在写文件上传之前,我们应该在spring的配置文件springMVC.xml里添加文件解析器:添加定义字符编码和上传文件的大小。
<!-- 配置MultipartResolver -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
<property name="maxUploadSize" value="1024000"></property>
</bean>
2.:在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="上传"/>
</form>
3.控制层:
package com.springmvc.hand;
import java.io.IOException;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
@Controller
public class HelloWorld {
/*
* 1.使用@RequestMapping注解来映射请求的URL
* 2.返回值会通过视图解析器解析为实际的物理视图,对于InternalResourceViewResolver视图解析器会做如下的解析:
* 通过prefix+returnVal+后缀得到实际的物理视图,然后做转发
* /WEB-INF/views/success.jsp
*/
@RequestMapping("/helloworld")
public String hello(){
System.out.println("hello world");
return "success";
}
/*文件上传*/
@RequestMapping("/testFileUpload")
public String testFileUpload(@RequestParam("desc") String desc,
@RequestParam("file") MultipartFile file) throws IOException{
System.out.println("desc: " + desc);
System.out.println("OriginalFilename: " + file.getOriginalFilename());//文件的名字
System.out.println("InputStream: " + file.getInputStream());//获取文件所对应的输入流
return "success";
}
}
代码已经写完:看看运行结果:
点击上传,如果上传成功:会跳转到success.jsp页面。