2014-12-30 4 views
0

에 업로드되지 :파일 업로드 내 컨트롤러에서 서버 폴더

 @RequestMapping(value={"/editbook.admin"}, method={RequestMethod.POST}) 
public String editBookSubmit(@Valid @ModelAttribute Book book, 
    @RequestParam(value ="file", required=false) MultipartFile file,Model model, 
    @RequestParam(value = "id", required = false) Long id, 
    ) throws Exception { 
    try { 
     uploadFile(book, file); 
    } catch (Exception e) { 
     log.error("Error editing", e); 
    } 

     return "editbook"; 
} 

    String path = /assets/BookPDFs; 

    private void uploadFile(Book book, MultipartFile file) throws java.io.IOException { 
    String destinationDirectory = path + File.separator; 
    String fileName = SecurityUtil.getSimpleAlphaNum(file.getOriginalFilename()); 
    File destination = new File(destinationDirectory + fileName); 
    FileUtils.copyInputStreamToFile(file.getInputStream(), destination); 
    book.setName(fileName); 
    BookBA.saveOrUpdate(book); 
} 

은 내가에서 파일을 다운로드 할 수있는 기능을 추가 싶어 MVC

를 사용하여 PAGE1에서 몇 가지 정보와 파일을 업로드 할 JSP 파일을 작성했다 2 쪽.

페이지 2 내 테이블에있는 모든 책을 표시하는 것입니다.

업로드 할 파일 이름에서 bd의 이름을 설정하는 메소드 (uploadFile)를 수행하고 DB에 저장하기 위해 save 메소드를 호출했습니다.

파일이 서버 폴더에 업로드되지 않았으므로 page2에서 파일을 다운로드 할 수 없습니다.

대상의 값을 디버깅 할 때 경로를 올바르게 설정하고 있습니다. 대상 = 자산은 testFile.pdf \

 File destination = new File(destinationDirectory + fileName); 

어떻게이 단계를 할 수 BookPDFs \?

+1

'/ asserst/BookPDFs' - 어쩌면/자산/...? –

+0

예, 방금 실수했습니다. 내가 가진 길 – Samarland

답변

0

이것은 정상적으로 작동합니다. 문제는 경로가 파일을 다른 곳으로 업로드한다는 것입니다.

그래서이 코드가 작동된다

String path = /assets/BookPDFs; 

private void uploadFile(Book book, MultipartFile file) throws java.io.IOException { 
String destinationDirectory = path + File.separator; 
String fileName = SecurityUtil.getSimpleAlphaNum(file.getOriginalFilename()); 
File destination = new File(destinationDirectory + fileName); 
FileUtils.copyInputStreamToFile(file.getInputStream(), destination); 
book.setName(fileName); 
BookBA.saveOrUpdate(book); 

}