Java

[JAVA ] File Upload 하는 방법

솔솔 2021. 4. 9. 09:00
반응형

안녕하세요 : > 

 

오늘은 jsp를 통해 java에서 파일 업로드 하는 방법을 소개해드리겠습니다.

 

jsp

<div>
	<form id="form_file" enctype="multipart/form-data">
    	<input type="file" id="fileData" name="fileData">
        <button type="button" onclick="javascript:f_fileUpload();">업로드</button>
    </form>
</div>

javascript

function f_fileUpload(){
	var frmData = new FormData($('#form_file')[0]);
    
    $.ajax({
        method: "POST",
        enctype: 'multipart/form-data',
        url: "/fileUpload.do",
        async: true,
        processData: false,
        contentType: false,
        cache: false,
        timeout: 600000,
        data: frmData,
        success: function (response, textStatus, jqXHR) {
        	alert("저장되었습니다");
        },
        error: function (jqXHR, status, error) {
        	alert("저장에 실패하였습니다.");
        }
    });
}

java

	@PostMapping(value = "/fileUpload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public Map<String, Object> fileUpload(FileCommand fileData) throws Exception {
    	Map<String, Object> paramMap = new HashMap<String, Object>();
    	String filePath = "C:/";
    	//----------------------파일업로드----------------------------------------------
    	SimpleDateFormat today = new SimpleDateFormat("yyyyMMddHHmmss");
    	SimpleDateFormat year = new SimpleDateFormat("yyyy");
    	SimpleDateFormat month = new SimpleDateFormat("MM");
    	SimpleDateFormat day = new SimpleDateFormat("dd");
    	// 파일업로드 경로 :: 기본경로/년/월/일
		String fileFullPath  = filePath+"/"+year.format(System.currentTimeMillis())+"/"+month.format(System.currentTimeMillis())+"/"+day.format(System.currentTimeMillis());
		
		//해당경로 없을 시 경로 생성 
		File dir1 = new File(filePath+"/"+year.format(System.currentTimeMillis()));
		File dir2 = new File(filePath+"/"+year.format(System.currentTimeMillis())+"/"+month.format(System.currentTimeMillis()));
		File dir3 = new File(filePath+"/"+year.format(System.currentTimeMillis())+"/"+month.format(System.currentTimeMillis())+"/"+day.format(System.currentTimeMillis()));
		if(!dir1.exists()) {
			dir1.mkdirs();
			dir1.setExecutable(true, false);
			dir1.setReadable(true, false);
			dir1.setWritable(true, false);
		}
		if(!dir2.exists()) { 
			dir2.mkdirs();
			dir2.setExecutable(true, false);
			dir2.setReadable(true, false);
			dir2.setWritable(true, false);
		}
		if(!dir3.exists()) { 
			dir3.mkdirs();
			dir3.setExecutable(true, false);
			dir3.setReadable(true, false);
			dir3.setWritable(true, false);
		}
		
		File file = Paths.get(fileFullPath, fileData.getFlUpFileData().getOriginalFilename()).toFile();
		String oriName = fileData.getFlUpFileData().getOriginalFilename();
		String ext = fileData.getFlUpFileData().getOriginalFilename().substring(fileData.getFlUpFileData().getOriginalFilename().lastIndexOf(".") + 1);

        try {
            // TODO: 파일경로(filePath) 유효성 처리 추가 - 필요시
            if (!file.exists()) {
              fileData.getFlUpFileData().transferTo(file);

              File newFile = new File(fileFullPath+"/"+oriName+"."+ext);
              boolean isRename = file.renameTo(newFile);
              if(isRename) {
                fileData.setAttflNm(oriName+"."+ext);
                fileData.setAttflPath(fileFullPath);
              }
            }
	} catch (Exception e) {
		throw e;
	} 
      //----------------------파일업로드----------------------------------------------
		
        return paramMap;
    }

 

FileCommand.java

import org.springframework.web.multipart.MultipartFile;

public class FileCommand {
	private MultipartFile flUpFileData;
	
	public MultipartFile getFlUpFileData() {
		return flUpFileData;
	}
    
	public void setFlUpFileData(MultipartFile flUpFileData) {
		this.flUpFileData = flUpFileData;
	}
}

 


자바 다운로드 하는 방법이 궁금하다면

2021.04.08 - [Java] - [Hybrid App / Web] JAVA File Download

 

[Hybrid App / Web] JAVA File Download

안녕하세요 : > 오늘은 java에서 file 다운로드 하는 방법을 소개해드리겠습니다. 일단 다운로드 버튼을 클릭했을 때 f_downloadUrl 함수를 호출해준다는 가정하에 진행할게요. function f_downloadUrl( filePat

ddol.tistory.com

글이 도움되었다면 구독과 공감 부탁드립니다👍👍

반응형