[Jsp] enctype="multipart/form-data" 에서 request.getParameter null 문제
2014. 3. 7. 11:15ㆍ프로그래밍/Jsp
1) enctype="multipart/form-data" 로 폼전송을 했을때 받아주는 페이지에서 request.getParameter를 했는데 null이 넘어 올 경우 ->>"multipart/form-data" 로 전송하면 request로 받을 수 없다.
2) 이럴때는 MultiPartRequest.getParameter를 사용하면 되는데, 방법은 아래와 같다.
- MultipartRequest multi = multi=new MultipartRequest(request, savePath, sizeLimit, "utf-8",
new DefaultFileRenamePolicy());
String user_id = multi.getParameter("user_id");
- 파일의 Rename이 필요할 때가 있는데 Multipart에서 제공하는 DefaultFileRenamePolicy를 사용할 수 도 있지만
직접 Rename하여 사용하고자 할때는 아래와 같이 하면됨~!
MultipartRequest multi = multi=new MultipartRequest(request, savePath, sizeLimit, "utf-8",
new MyFileRenamePolicy());
(*) FileRenamePlicy를 implements 하여 아래와 같이 MyFileRenamePolicy class를 생성해준다.
public class MyFileRenamePolicy implements FileRenamePolicy {
public File rename(File f) {
long currentTime = System.currentTimeMillis();
SimpleDateFormat simDf = new SimpleDateFormat("yyyyMMddHHmmss");
int randomNumber = (int)(Math.random()*100000);
String uniqueFileName = "" + randomNumber + simDf.format(new Date(currentTime));
String name = f.getName();
String body = null;
String ext = null;
int dot = name.lastIndexOf(".");
if (dot != -1) {
body = name.substring(0, dot);
ext = name.substring(dot); // includes "."
}
else {
body = name;
ext = "";
}
String tempName = uniqueFileName + ext;
f = new File(f.getParent(), tempName);
if (createNewFile(f)) {
return f;
}
int count = 0;
while (!createNewFile(f) && count < 9999) {
count++;
String newName = uniqueFileName + "_" + count + ext;
f = new File(f.getParent(), newName);
}
return f;
}
private boolean createNewFile(File f) {
try {
return f.createNewFile();
}
catch (IOException ignored) {
return false;
}
}
}
'프로그래밍 > Jsp' 카테고리의 다른 글
[Jsp] Jsp 엑셀 다운로드 (0) | 2014.03.31 |
---|---|
[JSP] JSTL 오늘날짜 구하기 (0) | 2014.03.24 |
[Java/Jsp] Excel 다운로드 시 제목 깨짐현상 방지 (0) | 2014.02.21 |
[JSP] Excel 변환시 깨짐현상 방지 (0) | 2014.02.21 |
[JSP] <c:forEach> 반복문 break (0) | 2014.02.21 |