/**
* 这里保存或更新的方法,主要是为了格式化保存和修改功能传参问题,直接新建一个类来规范success和msg
* 注意:这里做了关于头像上传的处理:
* 1.获取到上传文件的路径,并判断该文件夹是否存在,不存在就直接创建一个
* 2.获取传入对象employee的id和fileImage的文件名
* 修改: 3.如果id不为空并且文件名不为空字符串,说明是在做修改
* 3.1.那就根据id获取出该对象的头像名,并结合父路径判断如果存在就直接删除
* 3.2.然后调用文件上传工具类进行上传
* 添加: 4.如果id为空,并且文件名部位空字符串,说明在添加用户,此时,就直接调用上传工具类进行上传,同时将新的文件名设置进新建对象中
* @param employee
* @return
*/
public AjaxResult saveOrUpdate(Employee employee, MultipartFile fileImage, HttpServletRequest req){
try {
//动态获取上传文件的路径
String parentPath = req.getServletContext().getRealPath("/upload");
//根据文件路径获取文件夹
File file = new File(parentPath);
//如果这个文件夹不存在,就直接创建一个文件夹
if (!file.exists()){
file.mkdir();
}
//获取传入对象id,id为null说明是添加,不为null说明是修改
Long id = employee.getId();
//获取文件名,如果文件名为null没有上传文件,不为null说明上传了文件
String filename = fileImage.getOriginalFilename();
//id不等于null,是指在修改,而filename 不等于空是指用户上传了
if (id != null && filename != "") {
//这里是在获取当前对象原先的头像名
String sourceImage = employeeService.findById(employee.getId()).getHeadImage();
//这里是截取头像名和父路径拼接,然后进行删除
File file1 = new File(parentPath, sourceImage.split("/")[2]);
//id不为null,并且传入的文件名也不为null,就确定是在进行修改,就执行修改的操作
//如果这个文件存在,就直接删除,因为是修改,并且传入了新的头像
if (file1 != null) {
file1.delete();
}
//文件名不为再进行上传,调用上传文件工具类进行上传
String uploadName = FileUpLoad.upload(parentPath, fileImage);
//然后把这个文件名设置到改对象中,然后进行保存
employee.setHeadImage("/upload"+"/"+uploadName);
}
//这里表示在进行新增用户,所以没有id,但是上传了文件
if (id == null && filename != ""){
//文件名不为再进行上传,调用上传文件工具类进行上传
String uploadName = FileUpLoad.upload(parentPath, fileImage);
//然后把这个文件名设置到改对象中,然后进行保存
employee.setHeadImage("/upload"+"/"+uploadName);
}
//直接保存该对象
employeeService.save(employee);
return new AjaxResult();
} catch (Exception e) {
e.printStackTrace();
return new AjaxResult(false,"操作失败"+e.getMessage());
}
}
js部分
save: function () {
//获取id为ff的form标签下面的input标签并且name=id的值
var id = $("#ff input[name='id']").val();
//默认url地址为保存
var url = "/employee/save";
console.log(1);
if (id){//如果这个标签有值,说明就是做的修改,url地址又会不一样
url = "/employee/update";
}
console.log(url);
console.log(id);
console.log(2);
ff.form("submit",{
type:'post',
url:url,
onsubmit:function () {
console.log(ff.form("validate"));
return ff.form("validate");
},
success:function (r) {
console.log(r);
if (r){
dlg.dialog("close");
dg.datagrid("load");
}else {
$.messager.alert("Error", "保存失败", "error");
}
}
})
}
html部分
<tr>
<td>头像:</td>
<td>
<input name="fileImage" id="fileImage" class="easyui-filebox" ></input>
</td>
</tr>
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。