받아온 데이터를 List<MultipartFile>
로 변환시킨 후, 각각의 파일을 업로드 한다
@PostMapping(value = "fileupload")
public String fileupload(@RequestParam(value="fileList", required=false)
List<MultipartFile> files,
HttpServletRequest request) {
// 출력 확인
for(int i = 0; i < files.size(); i++) {
System.out.println(files.get(i).getOriginalFilename());
}
// 파일 upload 경로
String path = request.getServletContext().getRealPath("경로");
System.out.println(" fileUpload path = " + path);
// 파일 업로드
int size = files.size();
for(int i = 0; i < size; i++) {
MultipartFile file = files.get(i);
String fileName = file.getOriginalFilename();
File file = new File(path + "/" + fileName);
try {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));
bos.write(files.get(i).getBytes());
bos.close();
} catch (Exception e) {
return "file upload fail";
}
}
return "file upload success";
}
등록된 파일 목록들과 새롭게 수정한 파일 목록들을 비교하여
String fileuploaded_path = req.getServletContext().getRealPath("저장경로");
File dir = new File(fileuploaded_path);
String[] filenamesList = dir.list(); // 등록된 파일 목록들
for(String filename : filenamesList) {
if(!updatedFiles.contains(filename)) { // 서버에 저장된 파일명과 수정된 파일명이 일치하지 않으면
System.out.println("delete files : " + filename);
File file = new File(fileuploaded_path + "/" + filename);
file.delete(); // 해당 파일 삭제
}
}
int size = addFiles.size();
String[] addFilepath = new String[size]; // 추가 파일경로를 저장할 배열
for(int i = 0; i < size; i++) {
MultipartFile file = addFiles.get(i);
String addFileName = file.getOriginalFilename(); // 추가 파일 원본 파일명
addFilepath[i] = fileuploaded_path + "/" + addFileName;
File addFile = new File(addFilepath[i]);
if(!addFile.exists()) { // 해당 파일이 존재하지 않으면 파일 업로드
try {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(addFile));
bos.write(addFiles.get(i).getBytes());
bos.close();
} catch (Exception e) {
return "file upload fail";
}
return "file upload success";
}
@PostMapping(value = "updatefile")
public String updateproduct(@RequestParam("updateImg") List<String> updatedFiles,
@RequestParam("addFiles") List<MultipartFile> addFiles,
HttpServletRequest req) {
// 파일 수정 : 파일 삭제 + 파일 추가
String fileuploaded_path = req.getServletContext().getRealPath("저장경로");
File dir = new File(fileuploaded_path);
String[] filenamesList = dir.list(); // 등록된 파일 목록들
for(String filename : filenamesList) {
if(!updatedFiles.contains(filename)) { // 서버에 저장된 파일명과 수정된 파일명이 일치하지 않으면
System.out.println("delete files : " + filename);
File file = new File(fileuploaded_path + "/" + filename);
file.delete(); // 해당 파일 삭제
}
}
int size = addFiles.size();
String[] addFilepath = new String[size]; // 추가 파일경로를 저장할 배열
for(int i = 0; i < size; i++) {
MultipartFile file = addFiles.get(i);
String addFileName = file.getOriginalFilename(); // 추가 파일 원본 파일명
addFilepath[i] = fileuploaded_path + "/" + addFileName;
File addFile = new File(addFilepath[i]);
if(!addFile.exists()) { // 해당 파일이 존재하지 않으면 파일 업로드
try {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(addFile));
bos.write(addFiles.get(i).getBytes());
bos.close();
} catch (Exception e) {
return "file upload fail";
}
return "file upload success";
}
}