UploadControllerB.java ( 썸네일 생성 추가 )
페이지 정보
본문
package com.pkt.controller;
//복사 붙여넣기 하자
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.multipart.MultipartFile;
import lombok.extern.log4j.Log4j;
@Controller
@Log4j
public class UploadControllerB {
// 첨부파일 저장 경로 : servlet-context.xml에 있는 bean id="uploadPath" 경로 매칭
@Resource(name = "uploadPath")
private String uploadPath;
@GetMapping("/uploadForm2")
public void uploadFormGet() {
log.info("uploadForm2 Get.....................");
}
//한글 파일 이름이 깨진다면 web.xml에 한글 처리용 필터를 적용
@PostMapping("/uploadForm2")
public String uploadFormPost(MultipartFile[] file) throws Exception {
log.info("============= uploadForm2 : post ================");
log.info("============= file.length ====:"+file.length);
String savedName[] = new String[file.length]; //저장 파일명 배열 처리
for(int i=0; i<file.length; i++) {
if(file[i].getSize() > 0) { //파일크기가 0보다 크다면 : 파일 유무
log.info("originalName: " + file[i].getOriginalFilename());
log.info("size: " + file[i].getSize()); //byte 단위
log.info("contentType: " + file[i].getContentType());
Date today = new Date();
SimpleDateFormat cal = new SimpleDateFormat("yyyyMMddhhmmss");
String signdate = cal.format(today);
savedName[i] = signdate + "_" + file[i].getOriginalFilename(); //날짜_파일명 처리
byte[] fileData = file[i].getBytes();
log.info("============= savedName["+i+"] ====:"+savedName[i]);
File target = new File(uploadPath, savedName[i]);
FileCopyUtils.copy(fileData, target); //파일 업로드
// 첫 첨부 이미지만 썸네일 생성
if(i == 0) {
String new_name = "thum_" + savedName[0]; //썸네일 파일 이름
//사이즈 크기
int w = 50;
int h = 50;
String imgFormat = "jpg"; //기본 설정 초기화
Image image = ImageIO.read(new File(uploadPath+"\\"+savedName[0])); //원본 이미지
if(image != null) { //이미지 파일이 아닌 경우 null
Image resizeImage = image.getScaledInstance(w,h,Image.SCALE_SMOOTH);
BufferedImage newImage = new BufferedImage(w,h,BufferedImage.TYPE_INT_BGR);
Graphics g = newImage.getGraphics();
g.drawImage(resizeImage, 0, 0, null);
g.dispose();
ImageIO.write(newImage, imgFormat, new File(uploadPath+"\\"+new_name)); //파일 올리기
}
}
}
}
return "redirect:/uploadForm2";
}
}
- 이전글include/header.jsp 24.08.01
- 다음글== 공란 == 24.08.01
댓글목록
등록된 댓글이 없습니다.