기록해! 정리해!

myBatis2 (6)- 자료실(사진) 본문

SpringBoot

myBatis2 (6)- 자료실(사진)

zsuling 2022. 10. 13. 15:53

1. PsdController

 

1) 파일 프린트문으로 찍어서 확인해보기

2) 실제 파일 저장하기

File 임포트할때 java.io로 해야함

package com.rubypaper.controller;

import java.io.File;
import java.io.IOException;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

import com.rubypaper.psd.PsdServiceImpl;
import com.rubypaper.psd.PsdVO;


@Controller
public class PsdController {
	
	@Autowired 
	private PsdServiceImpl  service;
	
	@RequestMapping("/form_psd.do") 
	String form_psd(PsdVO vo){		
		System.out.println(" ==> /form_psd 확인 ");			
	return "form_psd";				
	}	
	
	@RequestMapping("/form_psd_ok.do") 
	String form_psd_ok(PsdVO vo , HttpServletRequest request){		
		System.out.println(" ==> /form_psd_ok 확인 ");
		
		//절대경로 가져오기
		String path = request.getSession().getServletContext().getRealPath("/files/");
	    System.out.println("path:" + path);
        //실제 파일 변수
		MultipartFile file = vo.getFile();
		//오리지널 이름을 가지고 있는 변수
		String fileName = file.getOriginalFilename();

	    try {
	    	//실제파일 저장하기
			file.transferTo(new File(path + fileName));
			//파일 이름 저장하기
			vo.setImg((fileName));
			service.insert(vo);
		} catch (Exception e) {
			e.printStackTrace();
		}
	    
				return "redirect:index.html";				
	}
	
	@RequestMapping("/list_psd.do") 
	String list_psd(PsdVO vo, Model  model){		
		System.out.println(" ==> /list_psd.do 확인 ");		
		model.addAttribute("li", service.list());
	return "list_psd";				
	}
	
	
}

3) 사진 중복 체크

-

-

package com.rubypaper.controller;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

import com.rubypaper.psd.PsdServiceImpl;
import com.rubypaper.psd.PsdVO;


@Controller
public class PsdController {
	
	@Autowired 
	private PsdServiceImpl  service;
	
	@RequestMapping("/form_psd.do") 
	String form_psd(PsdVO vo){		
		System.out.println(" ==> /form_psd 확인 ");			
	return "form_psd";				
	}	
	
	@RequestMapping("/form_psd_ok.do") 
	String form_psd_ok(PsdVO vo , HttpServletRequest request){		
		System.out.println(" ==> /form_psd_ok 확인 ");
		
		// 중복파일 시간
		long  time= System.currentTimeMillis();
		SimpleDateFormat sf=new SimpleDateFormat("HHmmss");
		String timeStr = sf.format(time);
		
		String onlyFileNma=""; //파일명 변수
		String extension="";   //확장자 변수
		
		//절대경로 가져오기
		String path = request.getSession().getServletContext().getRealPath("/files/");
	    System.out.println("path:" + path);
        //실제 파일 변수
		MultipartFile file = vo.getFile();
		//오리지널 이름을 가지고 있는 변수
		String fileName = file.getOriginalFilename();

		
	    try {
	    	
	    	File f = new File( path + fileName );
	    	if(!file.isEmpty()) {
	    	   if(f.exists()) {
	    		  
					onlyFileNma = fileName.substring(0, fileName.lastIndexOf("."));
					extension = fileName.substring(fileName.lastIndexOf("."));
					fileName = onlyFileNma + "_" + timeStr + extension;
				
					file.transferTo(new File(path + fileName));
	    	}else {
	    		file.transferTo(new File(path + fileName));
	    	}
	    }
	    	
			
			//파일 이름 저장하기
			vo.setImg((fileName));
			service.insert(vo);
		} catch (Exception e) {
			e.printStackTrace();
		}
	    
				return "redirect:index.html";				
	}
	
	@RequestMapping("/list_psd.do") 
	String list_psd(PsdVO vo, Model  model){		
		System.out.println(" ==> /list_psd.do 확인 ");		
		model.addAttribute("li", service.list());
	return "list_psd";				
	}
	
	
}

 

'SpringBoot' 카테고리의 다른 글

thymeleaf - hello  (0) 2022.10.14
myBatis2 (7)- 자료실(사진삭제, space.jpg)  (0) 2022.10.13
myBatis2 (5)- 자료실(사진)  (0) 2022.10.13
myBatis2 (4)- 자료실(사진)  (0) 2022.10.13
myBatis2 (3)- 검색창  (0) 2022.10.13
Comments