티스토리 뷰
//파일 업로드 경로는 복잡하게 하지 말고 한번의 경로에 하는것이 좋다. 디버깅하기 좋게. 모든 코딩은 디버깅 하기 쉽게 해야 한다.
//그리고 DB table에 파일 경로와 파일명이 들어갈때 전체(Full) 경로와 파일명으로 들어가야 한다.
//그래야 파일 path가 바뀌어도 이전거의 파일 다운에 문제가 없다.
//일부만 들어가는게 있던데 그건 의미 없다. 경로를 바꿔버리면 제대로 동작하지 않기에..
//jsp에서 등록 버튼이 클릭됐을때
$("#btnSave").click(function(){
if(confirm("저장 하시겠습니까?")){
if(NXOperators["dextuploadnx_instance"].Count == 0){
var strParam = $("form").serialize();
serverCall("/server/insertForm", strParam, callBackSave);
}else{
OnCallUploadStart();
}
}
}
function OnCallUploadStart(){
NXOperators["dextuploadnx_instance"].UploadURL = "/server/insertForm";
NXOperators["dextuploadnx_instance"].UploadStart();
}
function callbackSave(result){
if(result == "true"){
alert("OK");
self.close();
}else{
alert("Error");
}
}
@Controller
public class MyController{
@Autowired
MyService myService;
@RequestMapping("/server/insertForm")
public ModelAndView insertForm(HttpServletRequest request) throws Exception{
String result = "";
ModelAndView mv = new ModelAndView("/template");
try{
Map<String, Object> map = myService.insertForm(request);
mv.addObject("json", "true");
}catch(Exception e){
mv.addObject("json","false");
}
}
}
public insertface MyService{
public Map insertForm(HttpServletRequest request) throws Exception;
}
//공통적으로 쓰는것은 Service로 만들어 다른 컨트롤러에서 쓸 수 있게끔 하면 될것 같다.
//그리고 관행처럼 간단한것도 무조건 Service를 만들어서 쓰는데
//내 생각은 간단한것들은 구지 Service를 만들지 말고 Controller에서 Mapper 호출해서 끝내는게 좋은것 같다.
//디버깅 할때 구지 Controller -> Service -> Mapper 가는 시간만 더 걸린다.
//Service에서 코딩할일이 없고 단지 Mapper만 호출하는 케이스는 그냥 Controller에서 바로 Mapper 호출해서 쓰는게 어떨까 싶다.
//그래야 코딩도 한눈에 보이고...
@Service
public class ServiceImpl implements Service{
public Map insertForm(HttpServletRequest request) throws Exception{
//파일 업로드 경로
@Value("#{contextProperties['fileUploadPath']}")
MultipartHttpServletRequest multipart = null;
MultipartFile multipartFile = null;
String fileUploadPath=fileUploadPath;
String orgFileName = "";
long fileSize = 0L;
if(request.getContentType() != null && request.getContentType().indexOf("multipart/form-data") > -1){
multipart = (MultipartHttpServletRequest)request;
List<MultipartFile> files = multipart.getFiles("DEXTUploadNX");
for(int j=0; j<files.size(); j++){
multipartFile = files.get(j);
if(multipartFile.isEmpty() == false){
String orgFileName = multipartFile.getOriginalFilename();
int fileSize = multipartFile.getSize();
String newFileName = "중복방지된 파일명";
file = new File(fileUploadPath+newFileName);
multipartFile.transferTo(file);
//기타 파일 정보를 저장한다.
//orgFileName, fileSize, 등등..
}
}
}
}
}
'자바(Java)' 카테고리의 다른 글
[자바] 오라클 페이징 paging 쿼리 (0) | 2018.10.01 |
---|---|
[자바] key 생성 (0) | 2018.10.01 |
jquery 로딩 이미지 코드 (0) | 2018.09.28 |
이메일 수신확인 원리 (0) | 2018.09.28 |
[Spring] 스프링에서 메일 보내기 - 첨부파일 (2) (0) | 2018.09.27 |
- Total
- Today
- Yesterday
- php
- 프로씨
- JDBC
- 스크래핑
- C
- xe addon
- ocjap
- 자바
- proc
- 오라클
- 포인터
- esql
- 파이썬
- ocajp
- 플러터
- 이클립스
- webix
- XE3
- C언어
- 문자열
- 파싱
- Python
- 자바 smtp
- XE
- MySQL
- 라이믹스 모듈
- xe애드온
- 인포믹스
- KG
- EC
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |