/**
   * 프로파일 이미지 업로드 - 미리보기용
   *
   * @param fileVo
   * @param request
   * @param response
   * @param modelAndView
   * @return
   * @throws Throwable
   */
  @RequestMapping(value = "/user/profileUpload", method = RequestMethod.POST)
  public ModelAndView profileUpload(
      @LoginUser MemberSessionVo loginUser,
      @ModelAttribute("frmFile") TempUploadVo fileVo,
      HttpServletRequest request,
      HttpServletResponse response,
      ModelAndView modelAndView)
      throws Throwable {
    logger.debug("##root path : " + request.getServletContext().getRealPath("/"));
    logger.debug(
        "##request.getSession() : "
            + request.getSession().getServletContext().getRealPath("/resource/temp/"));
    String svcPath = request.getSession().getServletContext().getRealPath("/resource/temp/");

    // 업로드 날짜 및 파일명 구성
    String today = DateUtil.getToday();

    // TODOLIST : 세션에서 가져온다. 일단 테스트용으로 사용자 순번 1을 통해 등록한다.
    String weUserIdx = loginUser.getWeUserIdx().toString();
    String weUserId = loginUser.getWeUserId();

    double maxSize = Double.parseDouble(uploadMaxSize);

    // 파일 객체, 사용자 아이디, 오늘날짜, 파일 업로드 사이즈
    TempUploadVo tempFile =
        FileUploader.uploadTempFile(fileVo.getFile(), svcPath, weUserIdx, today, maxSize);

    logger.debug("tempFile : " + tempFile.toString());

    Map<String, String> param = new HashMap<String, String>();
    if (tempFile.isUploaded()) {
      // DB에 인서트 (WE_FILE 에 임시 저장 후 최종 프로필 수정시 profile 테이블에 업데이트한다.
      WeFile weFile = new WeFile();

      weFile.setWe_file_real_name(tempFile.getFileRealName());
      weFile.setWe_file_save_name(tempFile.getFileSaveName());
      weFile.setWe_file_save_path(tempFile.getFilePath());
      weFile.setWe_file_size(tempFile.getFileSize() + "");
      weFile.setWe_file_type(tempFile.getFileType());
      weFile.setWe_thumb_yn(tempFile.getThumbYn());
      weFile.setWe_thumb_name(tempFile.getThumbName());
      weFile.setWe_thumb_path(tempFile.getThumbPath());
      weFile.setWe_user_idx(Integer.parseInt(weUserIdx));
      weFile.setWe_ins_date(DateUtil.getTodayTime());
      weFile.setWe_ins_user(weUserIdx);

      int result = commonService.insertWeFile(weFile);

      logger.debug("### result : " + result);

      if (result == 1) {

        WeFile retFile = (WeFile) entityService.getRowEntity(weFile);

        param.put("result", "1");
        param.put("msg", "성공");
        param.put("realFileName", retFile.getWe_file_real_name());
        param.put("saveFileName", retFile.getWe_file_save_name());
        param.put("thumbPath", retFile.getWe_thumb_path());
        param.put("thumbName", retFile.getWe_thumb_name());
        param.put("filePath", retFile.getWe_file_save_path());
        param.put("fileSize", retFile.getWe_file_size() + "");
        param.put("tmpsrc", svcPath);
        param.put("fileIndex", retFile.getWe_file_idx() + "");
      } else {
        param.put("result", "0");
        param.put("msg", "파일 저장에 실패 하였습니다. 다시 시도하세요.");
        param.put("realFileName", tempFile.getFileRealName());
      }

    } else {
      param.put("result", "-1");
      param.put("msg", "파일 업로드에 실패 하였습니다.");
      param.put("realFileName", tempFile.getFileRealName());
    }

    logger.debug("param : " + param.toString());

    return new ModelAndView("json_").addObject("param", param);
  }