UploadControllerA.java > SPRING1

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

SPRING1

UploadControllerA.java

페이지 정보

profile_image
작성자 관리자
댓글 0건 조회 124회 작성일 24-08-01 10:29

본문

package com.pkt.controller;


import java.io.File;

import java.util.UUID;


import javax.annotation.Resource;


import org.springframework.stereotype.Controller;

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 org.springframework.web.servlet.mvc.support.RedirectAttributes;


import lombok.extern.log4j.Log4j;


@Controller

@Log4j

public class UploadControllerA {


// 첨부파일 저장 경로 : servlet-context.xml에 있는 bean id="uploadPath" 경로 매칭

@Resource(name = "uploadPath")

private String uploadPath;

//private String uploadPath = "C:\\spring2\\ex04\\src\\main\\webapp\\resources\\upload";

//설정에서 경로를 불러오지 않고 개별 처리를 하고 싶다면 위와 같이 경로를 대입처리


@GetMapping("/uploadForm")

public void uploadFormGet() {

log.info("uploadFormGet.....................");

}


//한글 파일 이름이 깨진다면 web.xml에 한글 처리용 필터를 적용

@PostMapping("/uploadForm")

public String uploadFormPost(MultipartFile file, RedirectAttributes rttr) throws Exception {

log.info("originalName: " + file.getOriginalFilename());

log.info("size: " + file.getSize()); //byte 단위

log.info("contentType: " + file.getContentType());


String savedName = uploadFile(file.getOriginalFilename(), file.getBytes());


rttr.addFlashAttribute("savedName",savedName);


return "redirect:/uploadForm";

}


// UUID 중복되지 않는 고유한 키 값을 설정할 때 사용

// uploadFile()은 원본 파일의 이름과 파일 데이터를 byte[]로 변환한 정보를 파라미터로 처리해서 실제로 파일 업로드한다.

private String uploadFile(String originalName, byte[] fileData) throws Exception {

UUID uid = UUID.randomUUID();

String savedName = uid.toString() + "_" + originalName;


// import java.io.File;

File target = new File(uploadPath, savedName);


// FileCopyUtils는 'org.springframework.util' 패키지에 설정된 클래스(실제 파일 처리)

FileCopyUtils.copy(fileData, target);


return savedName;

}


}

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

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

 

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

접속자집계

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