private String uploadPath;
//싱글톤 타입인가? 패스에 대한 경로 재 저장
public void setUploadPath(String uploadPath){
this.uploadPath = uploadPath;
}
//request 에서 attFile이라는 input name을 찾아 MultipartFile 클래스 변수에다가 담아둔다.
MultipartFile uploadFile = (MultipartHttpServletRequest) request).getFile("attFile");
//업로드 파일명 변수 선언
String originalFileName = uploadFile.getOriginalFilename();
//요놈은 머징?현재 시간 저장인가?
long currentTimeMillis = System.currentTimeMillis();
//소문자로 확장자명 저장
String lastName = originalFileName.substring(originalFileName.lastIndexOf(".")).toLowerCase();
String saveName = currentTimeMillis + "_" + lastName;
if(lastName.equals(".hwp") || lastName.equals(".doc") || lastName.equals(".pdf") ||
lastName.equals(".xls") || lastName.equals(".gif") || lastName.equals(".jpg")){
/*
File.separator =
시스템마다 경로를 나타내는 구분자가 다르게 존재한다.
윈도우는 \으로 구분하지만 유닉스는 / 로구분하는 등 업로드나 다운로드시 이렇게 작성하면 File.separator부분에 \나 /가 들어간다는 간다.
*/
File fileToCreate = new File(uploadPath + FIlie.separator + "temp");
//폴더가 없을시 생성
if(fileToCreate.exists() == false){
fileToCreate.mkdirs();
}
//무복사 타입(DB -> Read 버퍼 -> socket 버퍼 -> NIC 버퍼 사용)
uploadFile.transferTo(new File(uploadPath + File.separator + saveName));
Map params= new HashMap();
params.put("file_nm", saveName);
params.put("file_path", uploadPath);
params.put("file_type", lastName);
boardDao.write(params);
.
.
.