/** * 這裏保存或更新的方法,主要是爲了格式化保存和修改功能傳參問題,直接新建一個類來規範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部分javascript
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部分html
<tr> <td>頭像:</td> <td> <input name="fileImage" id="fileImage" class="easyui-filebox" ></input> </td> </tr>