스프링 리스스 파일 읽고 다운로드 되는 코드를 작성해보자.

이미지 다운로드

웹페이지에 이런경로로 파일 다운로드 요청을 한다. 

리소스 아래에 file이라는 폴더를 생성해 파일을 올린다.

컨트롤러는 아래와 같이 작성한다. 

@RequestMapping("/file_resource")
	public ResponseEntity<byte[]> file_resource(HttpServletRequest request,HttpServletResponse response, String fileName) throws Exception{
		
	    String saveFileName = fileName;
	    String f1 = "한글 파일명.hwp";
		String dirName = "file";//리소스 경로
		if(saveFileName.equals("team"))
		{
			fileName = f1;
		}
		String root_path = request.getSession().getServletContext().getRealPath("/");
		HttpHeaders headers =new HttpHeaders();
		InputStream in=null;
		String filedownloadpath = dirName+File.separatorChar+fileName;
		ClassPathResource resource = new ClassPathResource(filedownloadpath);
		in =resource.getInputStream();
		
		
		headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);		
		headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename*=UTF-8''" + URLEncoder.encode(fileName, "UTF-8"));
		ResponseEntity<byte[]> entity=new ResponseEntity<byte[]>(IOUtils.toByteArray(in), headers, HttpStatus.CREATED);
		in.close();
		return entity;
	}

ClassPathResource resource = new ClassPathResource(filedownloadpath);
in =resource.getInputStream();

리소스 경로에 있는 파일을 읽는다.

 

블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,