파일이름을 가져왔는데 null로 나올시 질문입니다.
- 작성자 :
- 박*우
- 작성일 :
- 2015-01-22 16:11:47
- 조회수 :
- 1,047
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
안녕하세요 전자정부 프레임워크를 이용하여 게시판을 하나만들고있습니다. egodownloadcontroller.java 를 참고하여 파일다운로드를 하고있는데 파일이름은 잘가져오는데 null로반환을합니다. 첨부파일 올렷으니 참고해주세요.
@Controller("downloadController")
public class DownloadController {
Logger log = Logger.getLogger(this.getClass());
private String getBrowser(HttpServletRequest request) {
String header = request.getHeader("User-Agent");
if (header.indexOf("MSIE") > -1) {
return "MSIE";
} else if (header.indexOf("Chrome") > -1) {
return "Chrome";
} else if (header.indexOf("Opera") > -1) {
return "Opera";
}
return "Firefox";
}
private void setDisposition(String flNm, HttpServletRequest request, HttpServletResponse response) throws Exception {
String browser = getBrowser(request);
String dispositionPrefix = "attachment; filename=";
String encodedFilename = null;
if (browser.equals("MSIE")) {
encodedFilename = URLEncoder.encode(flNm, "UTF-8").replaceAll("\\+", "%20");
} else if (browser.equals("Firefox")) {
encodedFilename = "\"" + new String(flNm.getBytes("UTF-8"), "8859_1") + "\"";
} else if (browser.equals("Opera")) {
encodedFilename = "\"" + new String(flNm.getBytes("UTF-8"), "8859_1") + "\"";
} else if (browser.equals("Chrome")) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < flNm.length(); i++) {
char c = flNm.charAt(i);
if (c > '~') {
sb.append(URLEncoder.encode("" + c, "UTF-8"));
} else {
sb.append(c);
}
}
encodedFilename = sb.toString();
} else {
//throw new RuntimeException("Not supported browser");
throw new IOException("Not supported browser");
}
response.setHeader("Content-Disposition", dispositionPrefix + encodedFilename);
if ("Opera".equals(browser)){
response.setContentType("application/octet-stream;charset=UTF-8");
}
}
@RequestMapping(value = "/download/downloadFile.do")
public void downloadFile(Map<String, Object> commandMap, HttpServletRequest request, HttpServletResponse response) throws Exception {
String flNm = (String)commandMap.get("flNm");
String uploadPath = Globals.FILE_STORE_PATH;
File uFile = new File(uploadPath, flNm);
여기는 다운로드 컨트롤러인데 파일을 생성하는분에서 자꾸 오류가나서 다음으로 넘어가지않습니다. 방식은 get방식이구요
@Controller("downloadController")
public class DownloadController {
Logger log = Logger.getLogger(this.getClass());
private String getBrowser(HttpServletRequest request) {
String header = request.getHeader("User-Agent");
if (header.indexOf("MSIE") > -1) {
return "MSIE";
} else if (header.indexOf("Chrome") > -1) {
return "Chrome";
} else if (header.indexOf("Opera") > -1) {
return "Opera";
}
return "Firefox";
}
private void setDisposition(String flNm, HttpServletRequest request, HttpServletResponse response) throws Exception {
String browser = getBrowser(request);
String dispositionPrefix = "attachment; filename=";
String encodedFilename = null;
if (browser.equals("MSIE")) {
encodedFilename = URLEncoder.encode(flNm, "UTF-8").replaceAll("\\+", "%20");
} else if (browser.equals("Firefox")) {
encodedFilename = "\"" + new String(flNm.getBytes("UTF-8"), "8859_1") + "\"";
} else if (browser.equals("Opera")) {
encodedFilename = "\"" + new String(flNm.getBytes("UTF-8"), "8859_1") + "\"";
} else if (browser.equals("Chrome")) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < flNm.length(); i++) {
char c = flNm.charAt(i);
if (c > '~') {
sb.append(URLEncoder.encode("" + c, "UTF-8"));
} else {
sb.append(c);
}
}
encodedFilename = sb.toString();
} else {
//throw new RuntimeException("Not supported browser");
throw new IOException("Not supported browser");
}
response.setHeader("Content-Disposition", dispositionPrefix + encodedFilename);
if ("Opera".equals(browser)){
response.setContentType("application/octet-stream;charset=UTF-8");
}
}
@RequestMapping(value = "/download/downloadFile.do")
public void downloadFile(Map<String, Object> commandMap, HttpServletRequest request, HttpServletResponse response) throws Exception {
String flNm = (String)commandMap.get("flNm");
String uploadPath = Globals.FILE_STORE_PATH;
File uFile = new File(uploadPath, flNm);
여기는 다운로드 컨트롤러인데 파일을 생성하는분에서 자꾸 오류가나서 다음으로 넘어가지않습니다. 방식은 get방식이구요
A
안녕하세요. 표준프레임워크센터입니다.
commandMap까지 정보가 제대로 담겼고
flNm키로 동일한 데이터를 받았는데 null이 나왔다는건 이해가 가지 않네요..
파일다운로드 설정이나 controller상의 문제가 아닌 단순 자바코드의 문제로 저희가 해드릴 방법은 없을 듯 합니다.
String flNm에 데이터를 받기 전에 debug를 확인한 것이 아닌지요?
debug의 watcher에서 안 나올 경우 직접 데이터를 콘솔에 찍어보시기 바랍니다.
감사합니다.
commandMap까지 정보가 제대로 담겼고
flNm키로 동일한 데이터를 받았는데 null이 나왔다는건 이해가 가지 않네요..
파일다운로드 설정이나 controller상의 문제가 아닌 단순 자바코드의 문제로 저희가 해드릴 방법은 없을 듯 합니다.
String flNm에 데이터를 받기 전에 debug를 확인한 것이 아닌지요?
debug의 watcher에서 안 나올 경우 직접 데이터를 콘솔에 찍어보시기 바랍니다.
감사합니다.