@WebServlet("/user/mypage")
public class UserMypageServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
MyUtils.openJSP("๋ง์ดํ์ด์ง", "user/userMypage", request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String uploadPath = request.getServletContext().getRealPath("/res/img");
int maxFileSize = 10_485_760; // 10 * 1024 * 1024 (10mb)
System.out.println("uploadPath : " + uploadPath);
try {
//jsp์์ form์์ ์
๋ก๋ํ๊ธฐ ๋ฒํผ์ ๋๋ฅด๋ฉด postํ์์ผ๋ก "ํจํท"๋จ์๋ก ์ชผ๊ฐ์ ธ์
//formํ๊ทธ์ enctype="multipart/form-date" ๋๋ฌธ์ "ํจํท"๋จ์๋ก ์ชผ๊ฐ์ ธ์๋ ๊ฒ์ด๋ค.
//์๋ธ๋ ์ผ๋ก ์ค๊ณ multi์์ ๊ทธ๊ฒ์ ๋ค์ ๋ถ์ฌ์ ํ์ผํ์์ผ๋ก ๋ง๋ค์ด์ค๋ค
// ๋ค์คํ์ผ ์
๋ก๋๋ formํ๊ทธ์ multiple ์์ฑ ์ด๊ฑฐ ํ๋๋ง ๋ง๋ถ์ฌ ์ค๋ค.
// ํ์ง๋ง ๋ฐฑ์๋์์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๋ ํ๋ค์ด์ง๋ค.
// request, ์ ์ฅ๊ฒฝ๋ก(uploadPath(ํฐ์บฃ ํ๋ํ๋ ์ ๋๊ฒฝ๋ก)+"/temp"), ํ์ผํฌ๊ธฐ์ง์ , ์ธ์ฝ๋ฉ, ๋์ผํ ํ์ผ๋ช
์์ผ๋ฉด renameํด์ฃผ๋ ๊ฐ์ฒด-ํ์ผ1,ํ์ผ2..์ด๋ฐ์์ผ๋ก)
MultipartRequest multi = new MultipartRequest(request, uploadPath + "/temp", maxFileSize
, "UTF-8", new DefaultFileRenamePolicy());
//multi.getFilesystemName(" "); ๋ง์ฝ ํ์ผ๋ช
์ด rename๋๋ค๋ฉด ๊ทธ ์ด๋ฆ์ ๋ค์ ๊ฐ์ ธ์จ๋ค.
String fileNm = multi.getFilesystemName("profileImg");
System.out.println("fileNm: " + fileNm);
if(fileNm == null) {
doGet(request, response);
return;
}
UserEntity loginUser = MyUtils.getLoginUser(request);
int loginUserPk = loginUser.getIuser();
String targetFolder = uploadPath + "/user/" + loginUserPk;
MyFileUtils.delFolder(targetFolder); //ํด๋ ์ญ์
File folder = new File(targetFolder);
// ์ ๋ ๊ฒฝ๋ก์ ์๋ ํด๋๋ฅผ ๋ง๋ค์ด์ค๋ค.
folder.mkdirs();
//ํ์ฅ์๋ฅผ ์ป์ด์ค๊ธฐ ์ํ ์ฝ๋ ๋ ์ค
int lastDotIdx = fileNm.lastIndexOf(".");
String ext = fileNm.substring(lastDotIdx); //ํ์ฅ์ ๊ตฌํจ
//String ext2 = fileNm.substring(fileNm.lastIndexOf(".") + 1);
//ํ์ผ ์ด๋ฆ์ด ํ๊ธ๋ก ๋ค์ด์์ ๋ ๊ทธ๊ฑธ ๋ค์ ์์ด์ ์ซ์๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด๋ก ๋ง๋ค๊ธฐ ์ํด์
// ์ฐ๋ ๊ฒ์ด UUTID์ด๋ค ๊ทธ๋ฐ๋ฐ ์ด๋ ํ์ฅ์๋ช
๋ ๋ฐ๋๋ฉด ์๋๋๊น lastDotIdx๋ฅผ ๋ง๋๋ ๊ฒ์ด๋ค.
String newFileNm = UUID.randomUUID().toString() + ext;
File imgFile = new File(uploadPath + "/temp/" + fileNm);
//์ํ๋ ์์น์ ํ์ผ๋ช
์ผ๋ก ๋ฐ๊พผ๋ค.
//์ฌ์ฉ์๊ฐ ์
๋ก๋ํ๋ฉด ์ ์ฅ๋๋ ๊ณณ์ temp์ด๊ณ
//์ต์ข
์ ์ผ๋ก ์ ์ฅ๋๋ ๊ณณ์ iuser์ด๋ค
imgFile.renameTo(new File(targetFolder + "/" + newFileNm));
UserEntity param = new UserEntity();
param.setIuser(loginUserPk);
param.setProfileImg(newFileNm);
UserDAO.updUser(param);
loginUser.setProfileImg(newFileNm);
} catch(Exception e) {
e.printStackTrace();
}
doGet(request, response);
}
}
String uploadPath = request.getServletContext().getRealPath("/res/img");
.png)
.png)
application์ servletContextํ์
์ ๊ฐ์ฒด์ฃผ์๊ฐ
์ด application์ด jsp 4๊ฐ์ง์ ๋ด์ฅ๊ฐ์ฒด ์ค appliction ๊ทธ๊ฒ์ด๋ค.
getRealPath() -> ์ค์ ํฐ์บฃ์ด ๋์๊ฐ๊ณ ์๋ ์ปดํจํฐ์์ ๊ทธ ๊ณณ์ ์ ๋ ์ฃผ์๊ฐ ๋ฆฌํด
(" ") -> ์ฌ๊ธฐ๋ค๊ฐ Img ์๋ ์ฃผ์๊ฐ๊น์ง ๊ตฌ์ฒดํํ๋ค. ์ฆ ์ ๋ ์ฃผ์๊ฐ์ ๋ ๋ถ์ฌ์ฃผ๋ ๊ฒ์ด๋ค.
// ์ฌ์ง์ ํด๋์ ์๋ ๊ฒ๋ง ์ง์ฐ๋ฉด ๋๋ค. DB์๋ ํ๋๋ง ์ ์ฅ๋๋ค.
//jsp
//.files.length๋ฅผ ๋ถ์ด๋ ์ด์ ๋ 'ํ์ผ์ ํ' ๋ฒํผ์ ๋๋ฅด๋ฉด ์ ํ๋ ํ์ผ๋ค์ด ๋ฐฐ์ด๋ก ๋ค์ด์ค๊ธฐ ๋๋ฌธ์ด๋ค.
// ์ง๊ธ์ ํ๋๋ง ์ ํํ ์ ์๊ธฐ ๋๋ฌธ์ 1๋ง ๋ค์ด์ค๊ฒ ์ง
// ์๋ฌด๊ฒ๋ ์ ํํ์ง ์์ผ๋ฉด 0์ด ๋๊ฒ ์ง
// ํ๋ก ํธ์๋์์ ๋ง๋ ๊ฒ์ ๋ฌด๋ ฅํ๋ค ๋ฒก์๋์์ ์ ๋๋ก ๋ง์์ผ์ง ์๋ฏธ๊ฐ ์๋ค -> ๊ทธ๋์ try catch๋ก ๊ฐ์ผ๋ค. ์ด๋ฏธ์ง๊ฐ ์์ผ๋ฉด ์๋ฌ๊ฐ ํฐ์ง ๊ฒ ๊ฐ์ ์ฝ๋๋ค์ ๊ฐ์ผ๋ค.
์ฌ๊ทํจ์๋ผ... ์๊ณ ๋ฆฌ์ฆ๋ ๊ณต๋ถํด์ผํ๋๋
ใ
ใ
...
์ฌ๊ทํจ์



