[Springboot] 파일 업로드

이로률·2023년 3월 2일
0

SpringBoot

목록 보기
3/5
post-thumbnail
  1. application.properties
spring.servlet.multipart.max-file-size=1MB
spring.servlet.multipart.max-request-size=10MB 

file.dir=C:/test/
  1. index.html
<form action="/item" method="post" enctype="multipart/form-data">
	<div class="container-fluid px-4">
		<h1 class="mt-4">Dashboard</h1>
		<ol class="breadcrumb mb-4">
		<li class="breadcrumb-item active">Dashboard</li>
		</ol>
		
        <div class="row">
			<label for="formFile" class="form-label">Default file input example</label>
			<div class="col">
				<input class="form-control" type="file" id="formFile">
			</div>
			<div class="col">
				<button type="button" class="btn btn-outline-primary">File Upload</button>
			</div>
		</div>
	</div>
</form>

  • enctype="multipart/form-data"
    모든 문자를 인코딩하지 않음.
    <form> 태그에서 파일이나 이미지를 서버로 전송할 때 주로 사용

  • <input class="form-control" type="file" id="formFile">
    파일 첨부

  • 여러개 파일 첨부

<div class="mb-3">
  <label for="formFileMultiple" class="form-label">Multiple files input example</label>
  <input class="form-control" type="file" id="formFileMultiple" multiple>
</div>
  1. HomeController.java
@Controller
public class HomeController {
	@GetMapping({"/", "/index.html"})
    public String index(){
        return "index";
    }
    
    @Value("${file.dir}")
    private String fileDir;
    @PostMapping("/upload")
    public String uploadFile(@RequestParam("file") MultipartFile multipartFile) throws IOException{
        String originalFilePath = fileDir + "original/" + multipartFile.getOriginalFilename();
        File originalFile = new File(originalFilePath);
        
        try{
        	FileUtils.copyInputStreamToFile(multipartFile.getInputStream(), originalFile);
        }
        catch(IOException e){
            e.printStackTrace();
        }
        return "redirect:/";
}
profile
💻🧐💗💝💘💖

0개의 댓글