Programming/게시판 만들기

[게시판 만들기] uploadcontroller 0

reeme 2021. 2. 15. 00:38
package org.lhr.controller;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.multipart.MultipartFile;
/*
@Controller
@RequestMapping(value = "/upload", method = RequestMethod.GET)
public class UploadController0 {
	private static final Logger logger = LoggerFactory.getLogger(UploadController0.class);

	// 위 오류 해결 import값 확인할 것 잘못된 import값이 들어가면 오류가 남
	@GetMapping("uploadForm")
	public String getUploadform() {
		return "/board/uploadForm";
	}

	// 현재 날짜를 구하는 메서드
	private String getFolder() {
		// 현재날짜의 형식을 지정함
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 대문자 MM인 이유 : 시간 분이랑 구분하기위해 시간분은 mm임
		// 현재날짜
		Date date = new Date();
		String str = sdf.format(date);
		// -를 파일을 구분할 수 있는 문자로 치환해주는 함수
		//File.separator는 파일구분자
		return str.replace("-", File.separator);
	}

	@PostMapping("/uploadFormAction")
	public void postUpload(MultipartFile[] uploadFile) {
		// 어떤 폴더에 실제로 업로드를 할 것인지에 대한 폴더 경로
		String uploadFolder = "C:\\uploadFolder";

		for (MultipartFile files : uploadFile) {
			// 향상된 for문 uploadFile 1차원 배열에 저장되어잇는것을 files에 저장해서 뿌리고의 반복
			// 타입이 배열타입일 때만 사용이 됨
			logger.info("파일명 = " + files.getOriginalFilename());
			logger.info("파일 크기=" + files.getSize());
			
			// 날짜별 폴더 생성
			File uploadPath = new File(uploadFolder, getFolder());
			
			UUID uuid = UUID.randomUUID();
			logger.info("uuid=" + uuid);
			// 							UUID 랜덤값_실제 파일명
			String uploadFileName = uuid.toString() + "_" + files.getOriginalFilename();
			
			// File saveFile = new File(파일업로드 경로, 파일명);
			File saveFile = new File(uploadPath, uploadFileName);
			logger.info("savefile=" + saveFile);

			// 똑같은 폴더명을 만들필요가 없기 때문에 exists()함수를 통해 존재여부를 파악하여 없으면 (false) 폴더를 생성해라.
			if (uploadPath.exists() == false) {
				uploadPath.mkdirs();// 폴더를 make해라
			}

			// tranferTo메소드는 API를 보면 try-catch문 안에 넣으라고 나와있음
			try {
				files.transferTo(saveFile);
			} catch (Exception e) {
				e.getMessage();
			} // 어떤 원인으로 오류나는지를 알려주는 역할을 함

		} // 향상된 for문 end

	}
	
	}*/

'Programming > 게시판 만들기' 카테고리의 다른 글

[게시판 만들기] js  (0) 2021.02.14
[게시판 만들기] mapper.xml  (0) 2021.02.14
[게시판 만들기] service & implement  (0) 2021.02.14
[게시판 만들기] MAPPER  (0) 2021.02.14
[게시판 만들기] DTO  (0) 2021.02.14