UploadControllerB.java ( 썸네일 생성 추가 ) > SPRING1

본문 바로가기
사이트 내 전체검색

SPRING1

UploadControllerB.java ( 썸네일 생성 추가 )

페이지 정보

profile_image
작성자 관리자
댓글 0건 조회 110회 작성일 24-08-01 11:02

본문

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";

}


}

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

공지사항
자유게시판
질문답변
1:1문의

 

별명 : 터푸가위
주소 : 부산시 동래구 명장로20번길 90
대표 : 박규태
메일 : dancepkt@******.com

접속자집계

오늘
362
어제
210
최대
10,760
전체
268,364
Copyright © dancePKT . All rights reserved.