Beispiel #1
0
  public ResponseData<?> moveFileToProduct(FileDto fileDto) throws Exception {
    String serverPath = fileDto.getRootPath();
    String savedDirectory = serverPath + fileDto.getFilePath();
    String targetFileFullPath = savedDirectory + "/" + fileDto.getSavedName();
    Integer userId = 1; // 추후 session에서 가지고 와야한다.
    String today = DateUtil.getToday();
    String localDir = "/resource/" + userId + "/" + today; // 임시저장경로
    String movePath = serverPath + localDir; // 파일 이동 경로

    try {
      File targetFile = new File(targetFileFullPath);
      if (targetFile.exists() && !targetFile.isDirectory()) {
        Path targetFilePath = Paths.get(targetFileFullPath);
        Path newPath = Paths.get(movePath);
        File newPathDir = new File(movePath);
        if (!newPathDir.exists() || !newPathDir.isDirectory()) {
          newPathDir.mkdirs();
        }
        Files.move(targetFilePath, newPath.resolve(targetFilePath.getFileName()));
        fileDto.setFilePath(localDir); // 이동한 파일경로 세팅
      } else {
        log.debug("파일이 존재하지 않거나 폴더 경로 입니다.");
      }
      return ResponseData.createSuccessResult(fileDto);
    } catch (IOException e) {
      e.printStackTrace();
      return ResponseData.createFailResult(fileDto);
    }
  }
Beispiel #2
0
  /**
   * /space/ajaxUpload.hbs 파일 참조 - File input 의 onChange 시점에 임시 저장하여 view에 정보를 넘겨준다.
   *
   * @param uploadfile
   * @param request
   * @return
   */
  @RequestMapping(value = "/common/uploadFile", method = RequestMethod.POST)
  @ResponseBody
  public ResponseData<?> fileUpload(
      @RequestParam("uploadfile") MultipartFile uploadfile, HttpServletRequest request) {

    String viewType = request.getParameter("viewType");
    FileDto fileDto = new FileDto();
    String serverPath =
        StringUtil.defaultString(request.getServletContext().getRealPath(FileUtil.SEPARATOR));

    // 허용 파일 여부 체크
    FileUtil.allowedFile(uploadfile);
    // 이미지 파일일 경우 ContentType 검사
    FileUtil.checkImageUpload(uploadfile, viewType);

    log.info("#### request ####");
    log.info(
        "# request getServletContext().getRealPath = {}",
        request.getServletContext().getRealPath(FileUtil.SEPARATOR));
    log.info("# request getServletPath = {} ", request.getServletPath());

    try {
      // temp/userId/yyyyMMdd/ 에 일단 저장 후 차후 userId/yyyyMMdd/파일명 으로 이동 후 삭제해야 한다.
      Integer userId = 1; // 추후 사용자 순번
      String localDir = "/resource/temp/" + userId; // 임시 저장 경로
      String directory = serverPath + localDir; // 서버 저장 경로

      // 폴더 생성
      File baseDir = new File(directory);
      if (!baseDir.exists() || !baseDir.isDirectory()) {
        baseDir.mkdirs();
      } else {
        log.debug("##### " + directory + "위치에 디렉토리가 존재합니다.");
      }

      // 파일 정보 추출
      fileDto = FileUtil.extractFileInfo(uploadfile, localDir);
      fileDto.setFilePath(localDir);
      fileDto.setFileType(FileUtil.checkImageFile(uploadfile) ? IMAGE : FILE);

      String filePath = Paths.get(serverPath, localDir, fileDto.getSavedName()).toString();
      log.debug("## filePath : {}", filePath);

      // 파일 업로드 스트림
      FileUtil.fileUpload(uploadfile, filePath);

      log.info("####### FILE SAVE INFO ########");
      log.info("fileDto = {}", fileDto);
      return ResponseData.createSuccessResult(fileDto);
    } catch (Exception e) {
      log.error("# File Upload Error : {}", e);
      return ResponseData.createFailResult(fileDto);
    }
  }