步骤一:
在spring的配置文件中applicationContext.xml中添加,上传使用的spring bean.
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="104857600" />
<property name="maxInMemorySize" value="4096" />
<property name="defaultEncoding" value="UTF-8"></property>
</bean>
步骤二:
前端代码:此处enctype="multipart/form-data" 这个地方记得一定要加!!!
<form action="/auth/importUser" id="form1" method="post" name="form_input" enctype="multipart/form-data" >
<div class="left" ><img src="images1/ico03.gif" width="82" height="82" /></div>
<div class="right" >
<div class="right01" >
<div class="right0101" >客服号码文件:</div>
<div class="right0102" >
<input type="file" name="file_name" id="file_name"/>
</div>
<div class="right02">
<input id="import_user" type="button" value="" />
</div>
<div class=" font01 right02 " >
<a href="/demo_data/demo_user.xls" target="_blank">示例文件下载</a>
</div>
</div>
</div>
</form>
步骤三:
后台代码:
@RequestMapping(value="/importUser")
@SuppressWarnings("rawtypes")
public String springUpload(HttpServletRequest request) throws Exception
{
//将当前上下文初始化给 CommonsMutipartResolver (多部分解析器)
CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver(
request.getSession().getServletContext());
//检查form中是否有enctype="multipart/form-data"
if(multipartResolver.isMultipart(request))
{
//将request变成多部分request
MultipartHttpServletRequest multiRequest=(MultipartHttpServletRequest)request;
//获取multiRequest 中所有的文件名
Iterator iter=multiRequest.getFileNames();
while(iter.hasNext())
{
//一次遍历所有文件
MultipartFile file=multiRequest.getFile(iter.next().toString());
if(file!=null)
{
String path=file.getOriginalFilename();
//上传
file.transferTo(new File(path));
}
}
}
return "/success";
}
这种上传文件的方式,简单明了,而且代码的易读性相对较高.
上面红色字体表示:文件将以二进制格式提交.