新增的数据

ublic void insert(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
JsonMsg jsonMsg=new JsonMsg();
//判断表单是否是文件上传的表单
if (!ServletFileUpload.isMultipartContent(request)){
// 如果不是则停止
jsonMsg.setMsg( “Error: 表单必须包含 enctype=multipart/form-data”);
returnJson(response,jsonMsg);
}
SimpleDateFormat dateFormat=new SimpleDateFormat(“yyyyMMdd_HHmmssSSS_”);

//配置上传相关的参数
DiskFileItemFactory factory=new DiskFileItemFactory();
//设置存临界值 - 超过后将产生临时文件并存储于临时目录中
factory.setSizeThreshold(MEMORY_THRESHOLD);

//设置临时存储目录
factory.setRepository(new File(System.getProperty("java.io.tmpdir")));
ServletFileUpload upload=new ServletFileUpload(factory);
//设置文件最大值 30M
upload.setFileSizeMax(MAX_FILE_SIZE);
//设置请求的大小最大值
upload.setSizeMax(MAX_REQUEST_SIZE);

//中文编码
upload.setHeaderEncoding("UTF-8");

//判断文件存放目录是否存在
File uploadDir=new File(UPLOAD_PATH);
if (!uploadDir.exists()){
    uploadDir.mkdirs();
}

SysUser saveUser=new SysUser();
//解析请求内容,提前文件 和 普通参数
try {
    List<FileItem> fileItems=upload.parseRequest(request);

    if (fileItems != null && fileItems.size() > 0){
        //遍历
        for (FileItem item:fileItems) {
            //获取自动名称 -- 参数名request.getParameter("")
            String fieldName=item.getFieldName();
            //判断是文件 还是普通字段
            if (!item.isFormField()){
                //不是表单元素  文件
                if ("portrait".equals(fieldName)){//判断是否是头像文件
                    //拼接文件名  item.getName()--》文件名
                    String fileName=dateFormat.format(new Date())+System.nanoTime()+Tools.getFileExt(item.getName());
                    //存放路径
                    String filePath=UPLOAD_PATH+fileName;
                    File saveFile=new File(filePath);
                    System.err.println(filePath);
                    //保存文件到硬盘
                    item.write(saveFile);
                    //把文件名保存到需要新增的对象中
                    saveUser.setPortrait(fileName);
                }
            }else {
                // 表单元素
                //需要通过流去读取
                BufferedReader br=new BufferedReader(new InputStreamReader(item.getInputStream(), StandardCharsets.UTF_8));
                String strValue=br.readLine();//读取到值
                if (fieldName==null) continue;
                switch (fieldName) {
                    case "userName": //用户名
                        if (Tools.isNotNull(strValue)) {
                            saveUser.setUserName(strValue);
                        } else {
                            throw new RuntimeException("请输入用户名!");
                        }
                        break;
                    case "userPassword": //密码
                        String userPassword = strValue;
                        if (Tools.isNotNull(userPassword)) {
                            Random random = new Random();
                            //生成一个随机的8位数作为盐   10000000 ~ 99999999
                            String salt = String.valueOf(random.nextInt(90000000) + 10000000);
                            //对输入的密码+盐 取MD5值
                            userPassword = MD5Util.getMD5(userPassword + salt);
                            saveUser.setUserPassword(userPassword);
                            saveUser.setSalt(salt);
                        } else {
                            throw new RuntimeException("请输入密码!");
                        }
                        break;
                    case "departmentId": //部门id
                        if (Tools.isInteger(strValue)) {
                            saveUser.setDepartmentId(Integer.parseInt(strValue));
                        } else {
                            throw new RuntimeException("请选择部门!");
                        }
                        break;
                    case "positionId": //职位id
                        if (Tools.isInteger(strValue)) {
                            saveUser.setPositionId(Integer.parseInt(strValue));
                        } else {
                            throw new RuntimeException("请选择职位!");
                        }
                        break;
                    case "roleId": //角色id
                        if (Tools.isInteger(strValue)) {
                            saveUser.setRoleId(Integer.parseInt(strValue));
                        } else {
                            throw new RuntimeException("请选择角色!");
                        }
                        break;
                    case "name": //姓名
                        saveUser.setName(strValue);
                        break;
                    case "gender": //性别
                        if (Tools.isInteger(strValue)) {
                            saveUser.setGender(Byte.parseByte(strValue));
                        } else {
                            throw new RuntimeException("请选择性别!");
                        }
                        break;
                    case "birthday": //生日
                        if (Tools.isNotNull(strValue)) {
                            SimpleDateFormat dateFormatBirthday = new SimpleDateFormat("yyyy-MM-dd");
                            saveUser.setBirthday(dateFormatBirthday.parse(strValue));
                        }
                        break;
                    case "email": //email
                        saveUser.setEmail(strValue);
                        break;
                    case "mobile": //手机号
                        saveUser.setMobile(strValue);
                        break;
                    case "qq": //qq
                        saveUser.setQq(strValue);
                        break;
                    case "wechat": //微信
                        saveUser.setWechat(strValue);
                        break;
                    case "userStatus": //状态
                        if (Tools.isInteger(strValue)) {
                            saveUser.setUserStatus(Byte.parseByte(strValue));
                        } else {
                            throw new RuntimeException("请选择性别!");
                        }
                        break;
                    case "remark": //备注
                        saveUser.setRemark(strValue);
                        break;
                }
            }
        }
        boolean isOk=this.userService.insert(saveUser);
        if (isOk){
            jsonMsg.setState(true);
            jsonMsg.setMsg("新增成功");
        }else{
            jsonMsg.setMsg("新增失败");
        }
    }else{
        jsonMsg.setMsg("参数异常");
    }
} catch (FileUploadBase.SizeLimitExceededException e) {
    e.printStackTrace();
    jsonMsg.setMsg("您上传文件超过了上传文件" + MAX_FILE_SIZE + "M 的限制");
} catch (FileUploadException e) {
    e.printStackTrace();
    jsonMsg.setMsg("文件上传失败");
} catch (RuntimeException e) {
    e.printStackTrace();
    //数据校验失败的异常信息
    jsonMsg.setMsg(e.getMessage());
}catch (Exception e) {
    e.printStackTrace();
    jsonMsg.setMsg("表单提交失败");
}

returnJson(response,jsonMsg);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值