반응형
안녕하세요 : >
오늘은 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
글이 도움되었다면 구독과 공감 부탁드립니다👍👍
반응형
'Java' 카테고리의 다른 글
[Spring Boot] 프로젝트 생성하기 (0) | 2021.06.15 |
---|---|
[JAVA] FCM 프로젝트 생성 및 JAVA에서 PUSH 보내는 방법 (6) | 2021.06.14 |
[Hybrid App / Web] JAVA File Download (2) | 2021.04.08 |
[JAVA] HttpURLConnection Post 방식으로 처리하기 (1) | 2021.04.06 |
[JAVA] HttpURLConnection Get 방식으로 처리하기 (0) | 2021.04.05 |