html
<form id="form1" role="form" enctype="multipart/form-data">
<input type="file" name="msg" value="添加图片" />
</form>
<button onclick="sub()" style="margin-left:25%;width:50%;height:32px">提交</button>
js
<script type="text/javascript">
function sub() {
var form = new FormData(document.getElementById("form1"));
$.ajax({
type: "POST",
url: "/ModelTest1/test/upload",
data: form,
// 下面三个参数要指定,如果不指定,会报一个JQuery的错误
cache: false,
contentType: false,
processData: false,
async: false,
dataType:'json',
success: function (data) {
if (data.type == true) {
alert("添加成功");
} else {
alert("上传出错");
}
}
});
}
</script>
spring-mvc.xml
<!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 默认编码 -->
<property name="defaultEncoding" value="utf-8" />
<!-- 文件大小最大值 -->
<property name="maxUploadSize" value="10485760000" />
<!-- 内存中的最大值 -->
<property name="maxInMemorySize" value="40960" />
</bean>
后台模块
@ResponseBody
@RequestMapping(value = "upload",method = RequestMethod .POST)
public String upload(HttpServletRequest request,@RequestParam("msg")MultipartFile msg[]) throws Exception{
request.setCharacterEncoding("utf-8");
//返回对象
Map map = new HashMap();
map.put("type",false);
//保存文件
for(int i=0;i<msg.length;i++){
//获取根目录下pic文件夹路劲
String uploadPath=request.getSession().getServletContext().getRealPath("/pic/");
//判断文件夹是否存在,如果不存在则创建文件夹
File files = new File(uploadPath);
if(i==0){
if (!files.exists()) {
files.mkdir();
}
}
//获取文件的后缀
String suffix = msg[i].getOriginalFilename().substring( msg[i].getOriginalFilename().lastIndexOf("."));
//用时间来生成文件名
String newFileName=new SimpleDateFormat("yyyyMMddHHmmssS").format(new Date())+suffix;
//创建一个文件
File f=new File(uploadPath+"/"+newFileName);
//通过CommonsMultipartFile的方法把上传的文件写到刚创建的文件
msg[i].transferTo(f);
/** 获取文件名 **/
String fileName = msg[i].getOriginalFilename().substring(0, msg[i].getOriginalFilename().lastIndexOf("."));
System.out.println(fileName);
System.out.println(newFileName);
map.put("type",true);
}
String json = JSON.toJSONString(map);
return json;
}