04.Spring、easyui實現頭像上傳

/**
     *  這裏保存或更新的方法,主要是爲了格式化保存和修改功能傳參問題,直接新建一個類來規範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>
相關文章
相關標籤/搜索