package com.indiScene.uploadBoard.service; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.logging.Logger; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; import com.indiScene.audioProcessing.KOSTAAudio; import com.indiScene.commonIO.dao.CommonIODao; import com.indiScene.reply.dao.ReplyDao; import com.indiScene.reply.dto.ReplyDto; import com.indiScene.uploadBoard.dao.UploadBoardDao; import com.indiScene.uploadBoard.dto.UploadBoardDto; /** * @type : UploadBoardServiceImpl * @date : 2015. 7. 13. * @author : Kim MinSic * @description : Process Indi's Music board's request */ @Controller public class UploadBoardServiceImpl implements UploadBoardService { public static String dir = "C:/SPB_Data/git/IndiScene/src/main/webapp/resources/"; //private String dir="C:/KMS_MavenSpring/apache-tomcat-7.0.59/wtpwebapps/IndiScene/resources/"; //private String dir="C:/mavenspring/apache-tomcat-7.0.59/wtpwebapps/IndiScene/resources/"; //나혁진용 @Autowired private ReplyDao replyDao; @Autowired private UploadBoardDao dao; @Autowired private CommonIODao commonIODao; private Logger logger = Logger.getLogger(this.getClass().getName()); /** * @name : write * @date : 2015. 7. 13. * @author : Kim MinSic * @description : call write page of upload Board */ @Override public void write(ModelAndView mav) { logger.info("UploadBoard Write Service"); Map<String, Object> map = mav.getModel(); HttpServletRequest request = (HttpServletRequest) map.get("request"); String board_num = "0"; int group_num = 1; int seq_num = 0; int seq_level = 0; if(request.getParameter("board_num") != null){ board_num = request.getParameter("board_num"); group_num = Integer.parseInt(request.getParameter("group_num")); seq_num = Integer.parseInt(request.getParameter("seq_num")); seq_level = Integer.parseInt(request.getParameter("seq_level")); mav.setViewName("uploadBoard/collabo"); }else{ String pageNumber = request.getParameter("pageNumber"); UploadBoardDto board = dao.read(board_num); mav.addObject("pageNumber",pageNumber); mav.addObject("board",board); mav.setViewName("uploadBoard/write"); } mav.addObject("board_num" , board_num); mav.addObject("group_num" , group_num); mav.addObject("seq_num" , seq_num); mav.addObject("seq_level" , seq_level); } /** * @name : writeOk * @date : 2015. 7. 15. * @author : Kim MinSic * @description : Process write OK service of upload board each situation */ @Override public void writeOk(ModelAndView mav) { logger.info("UploadBoard WriteOk Service"); Map<String, Object> map = mav.getModel(); MultipartHttpServletRequest request = (MultipartHttpServletRequest) map.get("request"); UploadBoardDto uploadBoardDto = (UploadBoardDto) map.get("uploadBoardDto"); Iterator<String> iter = request.getFileNames(); List<MultipartFile> fileList = new ArrayList<MultipartFile>(); while(iter.hasNext()){ String fileStr = iter.next(); MultipartFile mf = request.getFile(fileStr); fileList.add(mf); // // System.out.println(fileStr +"\t"+ mf.getOriginalFilename()); } uploadBoardDto.setRegister_date(new java.util.Date()); uploadBoardDto.setCount(0); String coverImage=null; if(!request.getFile("coverImage").isEmpty()){ coverImage= uploadBoardDto.getArtist_id()+"_"+System.currentTimeMillis()+"_"+fileList.get(0).getOriginalFilename(); }else{ coverImage="d2.jpg"; } String musicFile = null; if(!request.getFile("musicFile").isEmpty()){ // 녹음파일일 경우. musicFile =uploadBoardDto.getArtist_id()+"_"+System.currentTimeMillis()+"_"+request.getFile("musicFile").getOriginalFilename(); } // String dirCover = request.getSession().getServletContext().getRealPath("/resources/uploadBoard/cover"); // String dirMusic = request.getSession().getServletContext().getRealPath("/resources/uploadBoard/music"); // File coverFolder=new File(dir+"/uploadBoard/cover/");//이미지 저장경로가 없을경우 생성(나혁진) if(!coverFolder.exists()){ coverFolder.mkdirs(); } // File coverImageFile = new File(dir+"/uploadBoard/cover/",coverImage); File uploadMusicFile = null; File recordFile=null; if(musicFile !=null){ // 녹음파일일 경우. // File uploadFolder=new File(dir+"/uploadBoard/music/");//음악 저장경로가 없을경우 생성(나혁진) if(!uploadFolder.exists()){ uploadFolder.mkdirs(); } // uploadMusicFile = new File(dir+"/uploadBoard/music/",musicFile); }else{ uploadMusicFile = new File(dir+"/uploadBoard/music/",request.getParameter("recordFile").substring(request.getParameter("recordFile").lastIndexOf("/")+1)); // File tempFolder=new File(dir+"/TemporaryMusic/");//임시 저장경로가 없을경우 생성(나혁진) if(!tempFolder.exists()){ tempFolder.mkdirs(); } // recordFile = new File(dir+"/TemporaryMusic/",request.getParameter("recordFile").substring(request.getParameter("recordFile").lastIndexOf("/")+1)); } uploadBoardDto.setFile_name(uploadMusicFile.getName()); uploadBoardDto.setFile_path(uploadMusicFile.getAbsolutePath()); uploadBoardDto.setImage_path(coverImageFile.getAbsolutePath()); uploadBoardDto.setBoard_like(0); try { if(!request.getFile("coverImage").isEmpty()){ request.getFile("coverImage").transferTo(coverImageFile); } if(!request.getFile("musicFile").isEmpty()){ request.getFile("musicFile").transferTo(uploadMusicFile); }else{ if(!recordFile.renameTo(uploadMusicFile)){ byte[] buf= new byte[1024]; FileInputStream fis = new FileInputStream(recordFile); FileOutputStream fos = new FileOutputStream(uploadMusicFile); int read= 0; while((read=fis.read(buf, 0, buf.length))!=-1){ fos.write(buf,0,read); } fis.close(); fos.close(); recordFile.delete(); } } } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } uploadBoardDto.setFile_path(uploadBoardDto.getFile_path().substring(uploadBoardDto.getFile_path().indexOf("\\resources")).replace('\\', '/')); uploadBoardDto.setImage_path(uploadBoardDto.getImage_path().substring(uploadBoardDto.getImage_path().indexOf("\\resources")).replace('\\','/')); uploadBoardWriteNumber(uploadBoardDto); int check = dao.write(uploadBoardDto); mav.addObject("check", check); mav.addObject("board", uploadBoardDto); mav.setViewName("uploadBoard/writeOk"); } /** * @name : uploadBoardWriteNumber * @date : 2015. 7. 15. * @author : Kim MinSic * @description : tunning numbers of upload board database */ @Override public void uploadBoardWriteNumber(UploadBoardDto boardDto){ String board_num = boardDto.getBoard_num(); int group_num = boardDto.getGroup_num(); int seq_num = boardDto.getSeq_num(); int seq_level = boardDto.getSeq_level(); //logger.info("ch boardWriteNumber =>" + boardNumber + "||" + groupNumber + "||" + sequenceNumber + "||" + sequenceLevel); int max = 0; if(board_num.equals("0")){ //Root max=dao.boardGroupNumberMax(); if(max != 0){ max = max+1; }else{ max = boardDto.getGroup_num(); } group_num=max; seq_num=boardDto.getSeq_num(); seq_level = boardDto.getSeq_level(); }else{ HashMap<String, Integer> hMap = new HashMap<String, Integer>(); hMap.put("group_num", group_num); hMap.put("seq_num", seq_num); dao.boardGroupNumberUpdate(hMap); seq_level+=1; seq_num+=1; } boardDto.setGroup_num(group_num); boardDto.setSeq_num(seq_num); boardDto.setSeq_level(seq_level); logger.info("--"+group_num + "," + seq_num + "," + seq_level); } /** * @name : record * @date : 2015. 7. 14. * @author : Kim MinSic * @description : save temporary record file */ @Override public void record(MultipartHttpServletRequest request, HttpServletResponse response) { logger.info("upload Record Service Start"); String artistId= request.getParameter("artist_id"); Iterator<String> iter = request.getFileNames(); MultipartFile mpf = request.getFile(iter.next()); String recordFile = artistId+"_"+System.currentTimeMillis()+"_"+"RecordingFile.wav"; // String dir =request.getSession().getServletContext().getRealPath("/resources/TemporaryMusic"); File record =new File(dir+"/TemporaryMusic/",recordFile); try { mpf.transferTo(record); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } PrintWriter pw=null; try { pw = response.getWriter(); } catch (IOException e) { e.printStackTrace(); } pw.write(recordFile); // System.out.println("artist id = " +request.getParameter("artist_id")); } /** * @name : list * @date : 2015. 7. 16. * @author : Kim MinSic * @description : get upload board list to client */ @Override public void list(ModelAndView mav) { logger.info("upload List Service Start"); Map<String,Object> hMap = mav.getModel(); HttpServletRequest request=(HttpServletRequest)hMap.get("request"); dir= request.getSession().getServletContext().getRealPath("/").replace('\\', '/')+"resources/"; int boardSize =10; String pageNumber = request.getParameter("pageNumber"); String searchWord=request.getParameter("searchWord"); String searchType=request.getParameter("searchType"); // System.out.println("searchType!!!:"+searchType); // System.out.println("searchWord!!!:"+searchWord); if(pageNumber == null) pageNumber ="1"; // System.out.println("pageNumber!!!:"+pageNumber); int currentPage = Integer.parseInt(pageNumber); int startRow = (currentPage - 1) * boardSize +1; int endRow = currentPage*boardSize; //검색을 위해서 추가함(나혁진) int count = 0; int countArtistSearch= 0; int countSubjectSearch=0; if(searchWord==null){ count = dao.getBoardCount(); }else{ if( searchType.equals("total") || searchType.equals("subject")){ countSubjectSearch=commonIODao.getCommonBoardCount("uploadBoard", searchWord, "subject"); // System.out.println("subjectCheck"); } if(searchType.equals("total") || searchType.equals("artist")){ countArtistSearch=commonIODao.getCommonBoardCount("uploadBoard", searchWord, "artist_id"); // System.out.println("artistCheck"); } } logger.info("count"+count); logger.info("countSubjectSearch"+countSubjectSearch); logger.info("countArtistSearch"+countArtistSearch); // HashMap<String,Integer> rowMap = new HashMap<String,Integer>(); rowMap.put("startRow", startRow); rowMap.put("endRow", endRow); List<UploadBoardDto> list= null; List<UploadBoardDto> listArtistSearch=null; //검색될경우 쓰기위함 List<UploadBoardDto> listSubjectSearch=null; if(searchWord==null){ list= dao.getBoardList(rowMap); logger.info("list"+list.size()); }else{ listArtistSearch=(List<UploadBoardDto>) commonIODao.getCommonBoardList(startRow, endRow, searchWord, "artist_id", "uploadBoard"); listSubjectSearch=(List<UploadBoardDto>) commonIODao.getCommonBoardList(startRow, endRow, searchWord, "subject", "uploadBoard"); } /* for(UploadBoardDto dto:list){ // System.out.println(dto.getFile_path()); dto.setFile_path(dto.getFile_path().substring(dto.getFile_path().indexOf("\\resources")).replace('\\', '/')); dto.setImage_path(dto.getImage_path().substring(dto.getImage_path().indexOf("\\resources")).replace('\\','/')); }*/ if(list!=null){ //검색 아닐때 mav.addObject("count",count); mav.addObject("boardList",list); mav.setViewName("uploadBoard/list"); } if(listArtistSearch!=null){ //검색일때 mav.addObject("countArtistSearch",countArtistSearch); mav.addObject("searchArtistList",listArtistSearch); mav.setViewName("uploadBoard/searchList"); //메인검색해씅ㄹ때 } if(listSubjectSearch!=null){//검색일때 mav.addObject("countSubjectSearch",countSubjectSearch); mav.addObject("searchSubjectList",listSubjectSearch); mav.setViewName("uploadBoard/searchList"); //메인검색해씅ㄹ때 } mav.addObject("searchWord",searchWord); mav.addObject("boardSize",boardSize); mav.addObject("currentPage",currentPage); } /** * @name : read * @date : 2015. 7. 16. * @author : Kim MinSic * @description : get targeted upload board DTO */ @Override public void read(ModelAndView mav) { Map<String, Object> map=mav.getModel(); HttpServletRequest request = (HttpServletRequest) map.get("request"); String board_num = request.getParameter("boardNum"); String pageNumber = request.getParameter("pageNumber"); //한줄댓글을 불러온다 List<ReplyDto> replyList=replyDao.replyList(board_num); UploadBoardDto boardDto = dao.read(board_num); dao.readCount(board_num); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm"); String date= sdf.format(boardDto.getRegister_date()); //한줄댓글을 mav에 집어 넣는다. mav.addObject("replyList",replyList); mav.addObject("date",date); mav.addObject("pageNumber",pageNumber); mav.addObject("board_num",board_num); mav.addObject("boardDto",boardDto); mav.setViewName("uploadBoard/read"); } /** * @name : update * @date : 2015. 7. 17. * @author : Kim MinSic * @description : call upload board update page */ @Override public void update(ModelAndView mav) { Map<String, Object> map=mav.getModel(); HttpServletRequest request = (HttpServletRequest) map.get("request"); String board_num = request.getParameter("boardNum"); String pageNumber = request.getParameter("pageNumber"); UploadBoardDto board = dao.read(board_num); // System.out.println(board); mav.addObject("pageNumber",pageNumber); mav.addObject("board",board); mav.setViewName("uploadBoard/update"); } /** * @name : updateOk * @date : 2015. 7. 17. * @author : Kim MinSic * @description : board information update */ @Override public void updateOk(ModelAndView mav) { logger.info("UploadBoard UpdateOk Service"); Map<String, Object> map = mav.getModel(); MultipartHttpServletRequest request = (MultipartHttpServletRequest) map.get("request"); UploadBoardDto uploadBoardDto = (UploadBoardDto) map.get("uploadBoard"); UploadBoardDto originalDto = dao.read(uploadBoardDto.getBoard_num()); String coverImage = null; String musicFile = null; Iterator<String> iter = request.getFileNames(); while(iter.hasNext()){ String fileStr = iter.next(); MultipartFile mf = request.getFile(fileStr); if(!mf.isEmpty()){ if(fileStr.equals("coverImage")){ coverImage=uploadBoardDto.getArtist_id()+"_"+System.currentTimeMillis()+"_"+mf.getOriginalFilename(); File oldFile = new File(dir+"/uploadBoard/cover/",originalDto.getImage_path().substring(originalDto.getImage_path().lastIndexOf("/")+1)); oldFile.delete(); File newFile = new File(dir+"/uploadBoard/cover/",coverImage); uploadBoardDto.setImage_path(newFile.getAbsolutePath().substring(newFile.getAbsolutePath().indexOf("\\resources")).replace('\\','/')); try { mf.transferTo(newFile); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }else if(fileStr.equals("musicFile")){ musicFile = uploadBoardDto.getArtist_id()+"_"+System.currentTimeMillis()+"_"+mf.getOriginalFilename(); File oldFile = new File(dir+"/uploadBoard/cover/",originalDto.getFile_path().substring(originalDto.getFile_path().lastIndexOf("/")+1)); oldFile.delete(); File newFile = new File(dir+"/uploadBoard/cover/",musicFile); uploadBoardDto.setFile_name(mf.getOriginalFilename()); uploadBoardDto.setFile_path(newFile.getAbsolutePath().substring(newFile.getAbsolutePath().indexOf("\\resources")).replace('\\', '/')); try { mf.transferTo(newFile); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }else{ if(fileStr.equals("coverImage")){ uploadBoardDto.setImage_path(originalDto.getImage_path()); }else if(fileStr.equals("musicFile")){ } uploadBoardDto.setFile_path(originalDto.getFile_path()); } // System.out.println(fileStr +"\t"+ mf.getOriginalFilename()); } dao.update(uploadBoardDto); } /** * @name : delete * @date : 2015. 7. 18. * @author : Kim MinSic * @description : call upload board delete page */ @Override public void delete(ModelAndView mav){ logger.info("UploadBoard Delete Service"); Map<String, Object> map = mav.getModel(); HttpServletRequest request = (HttpServletRequest) map.get("request"); String board_num = request.getParameter("boardNum"); String pageNumber = request.getParameter("pageNumber"); mav.addObject("pageNumber",pageNumber); mav.addObject("board_num",board_num); mav.setViewName("uploadBoard/delete"); } /** * @name : deleteOk * @date : 2015. 7. 18. * @author : Kim MinSic * @description : confirm password to delete board and linked file */ @Override public void deleteOk(ModelAndView mav) { logger.info("UploadBoard DeleteOk Service"); Map<String, Object> map = mav.getModel(); HttpServletRequest request = (HttpServletRequest) map.get("request"); String board_num = request.getParameter("board_num"); String pageNumber = request.getParameter("pageNumber"); String password = request.getParameter("password"); HashMap<String,String> hMap = new HashMap<String,String>(); hMap.put("board_num", board_num); hMap.put("password", password); hMap.put("artist_id", request.getParameter("artist_id")); UploadBoardDto originalDto = dao.read(board_num); File oldImg = new File(dir+"/uploadBoard/cover/",originalDto.getImage_path().substring(originalDto.getImage_path().lastIndexOf("/")+1)); File oldMusic = new File(dir+"/uploadBoard/cover/",originalDto.getFile_path().substring(originalDto.getFile_path().lastIndexOf("/")+1)); if(!originalDto.getImage_path().substring(originalDto.getImage_path().lastIndexOf("/")+1).equals("d2.jpg")) oldImg.delete(); oldMusic.delete(); int check = dao.delete(hMap); mav.addObject("pageNumber",pageNumber); mav.addObject("check",check); mav.setViewName("uploadBoard/deleteOk"); } /** * @name : like * @date : 2015. 7. 19. * @author : Kim MinSic * @description : recommend board */ @Override public void like(ModelAndView mav) { logger.info("UploadBoard like Service"); Map<String, Object> map = mav.getModel(); HttpServletRequest request = (HttpServletRequest) map.get("request"); HttpServletResponse response = (HttpServletResponse) map.get("response"); String board_num = request.getParameter("boardNum"); String artist_id= request.getParameter("artist_id"); HashMap <String, String> hMap = new HashMap<String,String>(); hMap.put("board_num", board_num); hMap.put("artist_id", artist_id); int count = dao.likeCheck(hMap); PrintWriter pw = null;; response.setContentType("text/html; charset=UTF-8"); try { pw = response.getWriter(); } catch (IOException e) { e.printStackTrace(); } if(count>0){ pw.write("이미 추천한 게시물입니다."); }else{ int likeCheck = dao.likeUpdate(hMap); if(likeCheck ==0){ pw.write("본인의 게시물은 추천할 수 없습니다."); }else{ int check = dao.like(hMap); if(check>0){ pw.write("추천되었습니다."); int likeCount = dao.checkLike(hMap); if(likeCount == 30){ dao.copyBest(board_num); } } } } } /** * @name : collabo * @date : 2015. 7. 21. * @author : Kim MinSic * @description : call collabo page */ @Override public void collabo(ModelAndView mav) { logger.info("UploadBoard Collabo Service"); Map<String, Object> map = mav.getModel(); HttpServletRequest request = (HttpServletRequest) map.get("request"); String board_num = request.getParameter("boardNum"); String pageNumber = request.getParameter("pageNumber"); UploadBoardDto board = dao.read(board_num); mav.addObject("pageNumber",pageNumber); mav.addObject("board",board); mav.setViewName("uploadBoard/collabo"); } /** * @name : collaboAdopt * @date : 2015. 7. 25. * @author : Kim MinSic * @description : make collabo file between uploaded file and new file */ @Override public void collaboAdopt(ModelAndView mav) { logger.info("UploadBoard collaboAdopt Service"); Map<String, Object> map = mav.getModel(); MultipartHttpServletRequest request = (MultipartHttpServletRequest) map.get("request"); HttpServletResponse response = (HttpServletResponse) map.get("response"); UploadBoardDto uploadBoardDto = (UploadBoardDto) map.get("uploadBoard"); Iterator<String> iter = request.getFileNames(); MultipartFile mf = null; while(iter.hasNext()){ String fileStr = iter.next(); if(fileStr.equals("musicFile")){ mf = request.getFile(fileStr); // System.out.println(fileStr+"\t"+mf.getOriginalFilename()); } // System.out.println(fileStr +"\t"+ request.getFile(fileStr)); } String musicFile = null; if(!mf.isEmpty()){ // 음악파일일 경우. musicFile =uploadBoardDto.getArtist_id()+"_"+System.currentTimeMillis()+"_"+mf.getOriginalFilename(); } File uploadMusicFile = null; File recordFile=null; if(musicFile !=null){ // 음악파일일 경우. uploadMusicFile = new File(dir+"/uploadBoard/music/",musicFile); }else{ uploadMusicFile = new File(dir+"/uploadBoard/music/",request.getParameter("recordFile").substring(request.getParameter("recordFile").lastIndexOf("/")+1)); recordFile = new File(dir+"/TemporaryMusic/",request.getParameter("recordFile").substring(request.getParameter("recordFile").lastIndexOf("/")+1)); // System.out.println("recordFileName : " +request.getParameter("recordFile")); } try { if(!mf.isEmpty()){ mf.transferTo(uploadMusicFile); }else{ if(!recordFile.renameTo(uploadMusicFile)){ byte[] buf= new byte[1024]; FileInputStream fis = new FileInputStream(recordFile); FileOutputStream fos = new FileOutputStream(uploadMusicFile); int read= 0; while((read=fis.read(buf, 0, buf.length))!=-1){ fos.write(buf,0,read); } fis.close(); fos.close(); recordFile.delete(); } } } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } File originalFile = new File(dir+request.getParameter("originalFile").substring(request.getParameter("originalFile").indexOf("/resources")+10)); KOSTAAudio kostaAudio = new KOSTAAudio(); // System.out.println(originalFile.getAbsolutePath()); // System.out.println(uploadMusicFile.getAbsolutePath()); // System.out.println( uploadBoardDto.getArtist_id()); // System.out.println(Double.parseDouble(request.getParameter("sync"))); String mergeFile = kostaAudio.mergeAudio(originalFile.getAbsolutePath(), uploadMusicFile.getAbsolutePath(), uploadBoardDto.getArtist_id(), Double.parseDouble(request.getParameter("sync"))); try { PrintWriter pw = response.getWriter(); pw.write(mergeFile.substring(mergeFile.indexOf("/resources"))); } catch (IOException e) { e.printStackTrace(); } uploadBoardDto.setFile_path(uploadMusicFile.getAbsolutePath().substring(uploadMusicFile.getAbsolutePath().indexOf("\\resources")).replace('\\', '/')); // uploadBoardWriteNumber(uploadBoardDto); // int check = dao.write(uploadBoardDto); // mav.addObject("check", check); // mav.addObject("board", uploadBoardDto); } /** * @name : collaboOk * @date : 2015. 7. 26. * @author : Kim MinSic * @description : Process collabo OK service of each situation. */ @Override public void collaboOk(ModelAndView mav) { logger.info("UploadBoard CollaboOk Service"); Map<String, Object> map = mav.getModel(); MultipartHttpServletRequest request = (MultipartHttpServletRequest) map.get("request"); UploadBoardDto uploadBoardDto = (UploadBoardDto) map.get("uploadBoardDto"); uploadBoardDto.setRegister_date(new java.util.Date()); uploadBoardDto.setCount(0); String coverImage=null; if(!request.getFile("coverImage").isEmpty()){ coverImage= uploadBoardDto.getArtist_id()+"_"+System.currentTimeMillis()+"_"+request.getFile("coverImage").getOriginalFilename(); }else{ coverImage="d2.jpg"; } File coverImageFile = new File(dir+"/uploadBoard/cover/",coverImage); File uploadMusicFile = new File(dir+request.getParameter("mergeFile").substring(request.getParameter("mergeFile").indexOf("/resources"))); uploadBoardDto.setFile_name(uploadMusicFile.getName()); uploadBoardDto.setFile_path(request.getParameter("mergeFile").substring(request.getParameter("mergeFile").indexOf("/resources"))); uploadBoardDto.setImage_path(coverImageFile.getAbsolutePath()); uploadBoardDto.setBoard_like(0); try { if(!request.getFile("coverImage").isEmpty()){ request.getFile("coverImage").transferTo(coverImageFile); } } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } if(!request.getFile("coverImage").isEmpty()){ uploadBoardDto.setImage_path(uploadBoardDto.getImage_path().substring(uploadBoardDto.getImage_path().indexOf("\\resources")).replace('\\','/')); }else{ uploadBoardDto.setImage_path(request.getParameter("image_path")); } uploadBoardWriteNumber(uploadBoardDto); int check = dao.write(uploadBoardDto); mav.addObject("check", check); mav.addObject("board", uploadBoardDto); mav.setViewName("uploadBoard/writeOk"); } }