一.引入相关jar
<!-- 文件上传 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
二.前端提交代码逻辑
function goodsSave(){
var form = new FormData(document.getElementById("goods_add_form"));
$.ajax({
url:"${APP_PATH}/uploadGoods",
type:"post",
data:form,
processData:false,
contentType:false,
success:function(data){
if(data.code==1){
parent.layer.msg("保存成功!",{icon:1,time:2000});
}else if(data.code==0){
parent.layer.alert("保存失败!"+data.extend.va_msg,{icon:2});
}
},
error:function(e){
parent.layer.alert("网络错误!请联系管理员!",{icon:2});
}
});
}
三.后端相关代码
springMVC中配置
<!-- 配置multipartresolver,注意:id名必须这样写,不然会报错 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
<property name="maxInMemorySize" value="10240000"></property>
</bean>
后端接收数据接口
/**带附件新增
* @param request
* @return
*/
@RequestMapping("/uploadGoods")
@ResponseBody
public StatusCode uploadGoods(HttpServletRequest request) {
String userName=request.getParameter("userName");
System.out.println("开始保存文件");
System.out.println("userName"+userName);
//将当前上下文初始化给 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=request.getServletContext().getRealPath("static/upload");
path=path+"\\"+file.getOriginalFilename();
//String path="F:/springUpload/"+file.getOriginalFilename();
System.out.println(path);
//检查文件格式是否为jpg,gif,png,bmp,jpeg
if(CheckUtils.checkFileIsImage(file.getOriginalFilename())){
//上传保存图片
try {
file.transferTo(new File(path));
} catch (IllegalStateException e) {
e.printStackTrace();
return StatusCode.fail().add("va_msg", "图片上传过程中发生异常!");
} catch (IOException e) {
e.printStackTrace();
return StatusCode.fail().add("va_msg", "图片上传过程中发生异常!");
}
}else {
return StatusCode.fail().add("va_msg", "图片格式必须为jpg,gif,png,bmp,jpeg!");
}
}
}
}
return StatusCode.success();
}