springboot 파일 다운로드 및 업로드

1. 파일 업로드 기능: 직접 controller 보기
@PostMapping("/uploadFile")
public @ResponseBody String singleFileUpload(@RequestParam("file")MultipartFile file){

    //        
    if(file.isEmpty()){
       return "    ,    !";
    }
    try{
        //        
        byte[] bytes=file.getBytes();
        //  path  ,            
        Path path= Paths.get(FILE_DIR+file.getOriginalFilename());
        //                  
        Files.write(path,bytes);
        return "      !";
    }catch (IOException e){
        e.printStackTrace();
    }
    return "    ";
}

여기서 FILEDIR는 파일을 업로드하는 경로로 스스로 선택에 따라 설정할 수 있습니다. 예를 들어 제가 여기에 FILE 를 설정할 수 있습니다.DIR= "f://file//"경로
2. 파일이 올린 html 페이지



OK, 여기까지, 파일 업로드 기능이 구현되었으니 이제 파일 다운로드 기능입니다.
3. 다운로드한 Controller를 직접 보기
  @RequestMapping(value="/download",method = RequestMethod.GET)
    public void download( HttpServletResponse response){
        //        
        String fileName="com.seven.xuanshang.apk";
        //                        
        File file=new File(FILE_DIR,fileName);
        //     
        if(file.exists()){
            //            force-download,                    
            response.setContentType("application/force-download");
            //            ,   ,   ,                            
            response.addHeader("Content-Disposition",String.format("attachment; filename=\"%s\"", file.getName()));
            //      
            byte[]buffer=new byte[1024];
            FileInputStream fis=null;
            BufferedInputStream bis=null;
            try{
                fis=new FileInputStream(file);
                bis=new BufferedInputStream(fis);
                OutputStream os=response.getOutputStream();
                //      
                int i=bis.read(buffer);
                while(i!=-1){
                    //  response     
                    os.write(buffer,0,i);
                    i=bis.read(buffer);
                }
            }catch (IOException e){
                e.printStackTrace();
            }finally {
                //    ,     
                try {
                    if(bis!=null){
                        bis.close();
                    }
                    if(fis!=null){
                        fis.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

        }
    }

4. 다음은 다운로드 기능의 html단의 실현
클릭하여 XX 파일 다운로드
5.이로써 파일의 upload와download 기능이 완성되었습니다

좋은 웹페이지 즐겨찾기