**springmvc文件的上传**
最近自学了下SpringMVC中文件的上传与下载,这里先分享上传的一些过程与体验。
1.首先需要找到文件上传与下载的两个jar包
![jar包](https://img-blog.csdn.net/20180422102719850?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2t6dzEx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
其余的spring,与springMVCjar包是还是不可少的
2.接下来前端页面写好要上传的基本信息
<form action="${pageContext.request.contextPath }/fileupload" method="post" enctype="multipart/form-data" onsubmit="return check()">
上传人:<input id="name" type="text" name="name"><br/>
请选择文件:<input id="file" type="file" name="uploadfile"><br/>
<input type="submit" value="上传">
</form>
//也对表单做一个简单的校验
<script>
function check(){
var name = $("#name").val();
var file = $("#file").val();
alert("name="+name+";"+file);
if(name==""){
alert("请填写上传人");
return false;
}
if(file.length==0||file==""){
alert("请选择上传文件!");
return false;
}
return true;
}
</script>
3.springMVC中的配置
<!-- 定义组件扫描器,指定需要扫描的包 -->
<context:component-scan base-package="com.springmvc.controller" />
<!--配置注解驱动 -->
<mvc:annotation-driven />
<!-- 定义视图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 设置前缀 -->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!-- 设置后缀 -->
<property name="suffix" value=".jsp"/>
</bean>
**<!-- 配置文件上传解析器 MultipartResolver -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置请求编码格式-->
<property name="defaultEncoding" value="UTF-8" />**
</bean>
4.控制器 fileUpload.java
@Controller
public class fileUpload {
@RequestMapping("/fileupload")
public String handleFormUpload(@RequestParam("name")String name,@RequestParam("uploadfile")List<MultipartFile> uploadfile,HttpServletRequest request){
//判断上传文件是否存在
if(uploadfile.size()>0 && !uploadfile.isEmpty()){
//循环输出上传的文件
for(MultipartFile file:uploadfile){
//获取原始文件名
String originalFilename = file.getOriginalFilename();
//设置上传文件的保存地址目录
String dirpath = request.getServletContext().getRealPath("/upload/");
System.out.println(dirpath);
File filepath = new File(dirpath);
//如果文件的地址不存在,就先创建目录
if(!filepath.exists()){
filepath.mkdirs();
}
String newFilename = name+"_"+originalFilename;
try {
//使用MultipartFile接口的的方法完成文件上传到指定位置
file.transferTo(new File(dirpath+newFilename));
} catch (IOException e) {
e.printStackTrace();
return "error";
}
}
return "success";
}else{
return "error";
}
}
}
效果图
点击以后就是显示上传成功!