|
现在项目用的最多的框架是spring boot框架,在该框架下如何使用$.ajax上传文件、上传列表,下面会通过示例代码来说明。
1.上传文件
var userFormData = new FormData();
var userArr = $("dataModalForm").seializeArray();
for( i in userArr ){
userFormData.append(userArr[i].name,encodeURI(userArr[i].value);
}
$.ajax({
url:'http://localhost:8080/myProject/saveUser',
method:'POST',
processData:false,
contentType:false,
data:userFormData,
success:function(res){
alert("保存成功");
},
error:function(res){
}
});
@RequestMapping(value="saveUser")
public String saveUser(UserEntity user,MultipartHttpServletRequest request) throw Excetpion{
URLDecodeUtil.beanURLDecode(user);
for(Entry<String,String> elem:filePathMap.entrySet()){
MultipartFile mulitiFile = request.getFile(elem.getKey());
String rootPath = UserController.class.getClass().getResource("/").getPath()+"/file/":
SimpleDateFormat sdf = new simpleDateFormat("yyyyMMddHHmmssSS");
String filename = elem.getKey()+".jpg");
String filePath = rootPath + fileName;
File file = new File(filePath);
if(!file.getParentFile().exists()){
file.getParentFile().mkdirs();
}
multiFile.transferTo(file);
user.setProfileDoc("/file/"+fileName);
}
userService.saveUser(user);
}
2.上传List数据
var project = {
projectId:"",
projectName:""
};
var projectRelatedPersons = [{
userId:"",
userName:"",
relation:"项目经理",
},{
userId:"",
userName:"",
relation:"项目监理",
},{
userId:"",
userName:"",
relation:"项目成员",
}];
$.ajax({
url:"http://localhost:8080/myProject/save",
method:"POST",
data:JSON.stringify({
project:project,
projectRelatedPersonList:projectRelatedPersons
}),
contentType:"application/json;charset=utf-8",
success:function(res){
alert("success")
}
});
public class ProjectVO{
private projectEntity project;
private List<ProjectRelatedPerson> projectRelatedPersonList;
......
}
@RestController("/")
public class ProjectController{
@RequestMapping(value="save")
public String save(@RequestBody ProjectVO projectVO) throw Exception{
this.projectService.save(projectVO);
}
}
|