PartUploadPro2Servlet.java
페이지 정보
본문
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
@WebServlet("/partUploadPro2")
@MultipartConfig(
fileSizeThreshold=0,
location = "C:\\upload"
)
public class PartUploadPro2Servlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public PartUploadPro2Servlet() {
super();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String writer = request.getParameter("writer");
String uploadFileNameList = "";
String file1 = "";
String file2 = "";
//전송된 모든 파라미터 값들을 가지고 Part 객체를 생성한다.
//type=file 속성 값이 아닌 파라미터에 대해서도 객체가 생성되기 때문에 if구문으로 처리를 해야한다.
//type=file 속성만 true, 다른것들을 false... && part.getSize()>0
for(Part part: request.getParts()){
//if(!part.getName().equals("writer")){
//if(part.getName().equals("partFile1") || part.getName().equals("partFile2")){
if((part.getName().equals("partFile1") || part.getName().equals("partFile2")) && part.getSize()>0){
String contentDisposition = part.getHeader("content-disposition");
System.out.println("contentDisposition = " + contentDisposition); //콘솔 출력
String uploadFileName = getUploadFileName(contentDisposition);
//오늘 날짜 구하기
java.util.Date today = new java.util.Date();
SimpleDateFormat cal = new SimpleDateFormat("yyyyMMddhhmmss");
String signdate = cal.format(today);
//중복 파일 피하기 위한 처리
uploadFileName = signdate+"_"+uploadFileName;
part.write(uploadFileName);
uploadFileNameList += " " + uploadFileName;
if(part.getName().equals("partFile1")) {
file1 = uploadFileName;
}
if(part.getName().equals("partFile2")) {
file2 = uploadFileName;
}
}
}
// 출력부분
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("작성자 " + writer + "님이 " + uploadFileNameList + " 파일을 업로드 하였습니다.<br>" );
out.println("file1 : "+file1+" 파일을 업로드 하였습니다.<br>" );
out.println("file2 : "+file2+" 파일을 업로드 하였습니다.<br>" );
}
//사용브라우저가 Chrome인 경우
private String getUploadFileName(String contentDisposition) {
String uploadFileName = null;
String[] contentSplitStr = contentDisposition.split(";");
int firstQutosIndex = contentSplitStr[2].indexOf("\"");
int lastQutosIndex = contentSplitStr[2].lastIndexOf("\"");
uploadFileName = contentSplitStr[2].substring(firstQutosIndex + 1, lastQutosIndex);
return uploadFileName;
}
//사용 브라우저가 IE인 경우
/*
private String getUploadFileName(String contentDisposition) {
String uploadFileName = null;
String[] contentSplitStr = contentDisposition.split(";");
int lastPathSeparatorIndex = contentSplitStr[2].lastIndexOf("\\");
int lastQutosIndex = contentSplitStr[2].lastIndexOf("\"");
uploadFileName = contentSplitStr[2].substring(lastPathSeparatorIndex + 1, lastQutosIndex);
return uploadFileName;
}
*/
}
- 이전글partUploadForm2.jsp 21.07.15
- 다음글● 파일 업로드 - part 인터페이스 이용 (단일) 21.07.15
댓글목록
등록된 댓글이 없습니다.