이전 포스트 참고!
ckeditor4 사용방법(스프링 게시판 에디터 추천)
이번에 만드는 게시판에 넣을 에디터를 찾아보다가 ckEditor를 발견! 네이버에서 만든 스마트에디터, 다음 에디터 같은 것들은 이미 다른 사이트에 적용되어 있는것같아 새로운 에디터를 찾아봤
jul-liet.tistory.com
이번엔 이미지 업로드를 봐보자,,,
1. 현재 이미지 버튼을 누르면 업로드 하는 버튼이 없음!

config.js에 값을 추가해보자
config.filebrowserUploadUrl = '/upload.do?type=Files',
config.filebrowserImageUploadUrl = '/upload.do?type=Images',
config.filebrowserUploadMethod='form'; //파일 오류났을때 alert띄워줌

이제 컨트롤러에서 파일 올리고 가져오는 소스를 작성해야한다.
아까 urlconfig.filebrowserUploadUrl 에 작성한 /upload.do에 해당하는 컨트롤러를 작성하자!
주의사항)
* 파일 다운받을때 servlet.xml path설정해줘야함
<resources mapping="/ckEimg/**" location="/ckEimg/" />
이미지 업로드 하고 ckeditor에 값을 반환해 줘야하는데 최신 버전은 json으로 적용해줘야 오류가 안남
1. 스크립트 형식
window.parent.CKEDITOR.tools.callFunction("+callback+",'"+fileUrl+"','파일이 업로드되었습니다.')"+"</script>"); |
2. json 형식 (1)
printWriter.println("{\"filename\" : \""+fileName+"\", \"uploaded\" : 1, \"url\":\""+fileUrl+"\"}"); |
3. json 형식 (2)
JsonObject json = new JsonObject(); json.addProperty("uploaded", 1); json.addProperty("fileName", fileName); json.addProperty("url", fileUrl); printWriter.println(json); |
컨트롤러 예시
@RequestMapping(value = "/upload.do", method = RequestMethod.POST)
public void uploadimg(HttpServletRequest request,HttpServletResponse response, MultipartFile upload) throws Exception {
logger.info("upload 들어온다! ");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf-8");
//파일 이름 가져오기
String fileName=upload.getOriginalFilename();
//파일을 바이트 배열로 변환
byte[] bytes=upload.getBytes();
//이미지를 업로드할 디렉토리를 정해준다
String uploadPath="C:\\Users\\eclipse-workspace\\test\\src\\main\\webapp\\ckEimg\\";
OutputStream out=new FileOutputStream(new File(uploadPath+fileName));
//서버에 write
out.write(bytes);
//성공여부 가져오기
String callback=request.getParameter("CKEditorFuncNum");
//클라이언트에 이벤트 추가 (자바스크립트 실행)
PrintWriter printWriter=response.getWriter(); //자바스크립트 쓰기위한 도구
String fileUrl= request.getContextPath()+"/ckEimg/"+fileName;
if(!callback.equals("1")) { // callback이 1일 경우만 성공한 것
printWriter.println("<script>alert('이미지 업로드에 실패했습니다.');"+"</script>");
}else {
logger.info("upload img 들어온다! "+fileUrl);
printWriter.println("<script>window.parent.CKEDITOR.tools.callFunction("+callback+",'"+fileUrl+"','이미지가 업로드되었습니다.')"+"</script>");
}
printWriter.flush();
}
* 이미지파일 이름 안겹치게도 처리해줘야함
* img파일 가운데 정렬 없음ㅡㅡ img2다운 받기추가
* multipartFile 공부하기
MultipartFile을 사용한 File 업로드 (multipart/form-data)
MultipartFile을 사용한 File 업로드 (multipart/form-data) SpringFramework환경의 서버라면 SpringFramework에서 제공하고 있는 MultipartFile 클래스와 MultipartHttpServletRequest 클래스를 사용해서..
caileb.tistory.com
'개발공부 > 웹개발' 카테고리의 다른 글
[javascript] form 값 reset 하는 법 (0) | 2021.01.28 |
---|---|
ckeditor4 textarea부분 height 조정 (0) | 2021.01.12 |
git 개념정리 및 명령어 (계속 추가 예정) (0) | 2021.01.07 |
ckeditor4 사용방법(스프링 게시판 에디터 추천) (1) | 2021.01.06 |
[mysql] 위 아래 행 한번에 구하기 (이전,다음게시판 구하기) (0) | 2020.11.25 |