File Upload with Spring
Spring file upload를 하려고 하다보니 꼬리에 꼬리를 물고 찾아볼 것들이 나온다...
8th refactoring은 언제하지...
1. Spring file upload
@RequestParam("file") MultipartFile file
이랑
File transferFile = new File(uploadDir + file.getOriginalFilename());
file.transferTo(transferFile);
를 적절히 잘 사용하면 upload된다.
Q1) MultipartFile vs File vs Http Multipart Request vs CommonMultipartFile
용도의 차이를 알아봐야겠다.
2. file update을 위해서
2.1 file delete
public @ResponseBody String boardFileDelete() {
String path = "C:\Users\Public\Pictures\Sample Pictures\abc.jpg" // 삭제할 파일의 경로
File file = new File(path);
if(file.exists() == true){
file.delete();
}
return null;
}
를 쓴다.
그런데 파일 삭제 소스를 찾다가 이런글을 보았다.
"주의하실 점은 파일 삭제는 서블릿 엔진(servlet container)이 종료될 때(리스너를 통해서) 한꺼번에 삭제하시는 게 좋겠죠. 서블릿 엔진 구동중에 삭제하려고 하면 락이 걸려서 안 지워질 수도 있으니까요."
Q1) *여기에서 논외로 리스너가 궁굼해졌다. 안그래도 listener class에 정확한 용도가 이해가 되지 않았는데, 단지 서버가 올라갈때 먼저 참조하는 xml파일을 알려주는 걸로(?)만 알고있었다. 여기에서 다시한번 리스너가 나오니 정말 뭔지 모르겠다.
Q2) *위의 말대로 홈페이지가 운영된다면, 서버는 삭제할 파일의 리스트들을 가지고 있다가 정기적으로 서버가 내려가는 시간마다 일괄삭제를 한다는 건가? 그렇다면 그동안에는 file을 홈페이지에서 볼 수 없게 하는 건가?
*update를 위해 단순히 삭제하고 그 경로에 새로 올릴 수는 있는데 실제 홈페이지는 어떻게 동작하는 건지 모르겠다.
3. 구글링을 하다보니 Monitoring a File for changes 에 관한 얘기가 나온다. 이것도 실제로 홈페이지에서 많이 쓰이지? 어떤용도로 필요하지?