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>
相关文章
相关标签/搜索