복붙노트

[SPRING] Spring MVC를 사용하여 서버 디렉토리에 파일 업로드

SPRING

Spring MVC를 사용하여 서버 디렉토리에 파일 업로드

클라이언트 컴퓨터에서 서버 디렉터리에 파일을 업로드하려고합니다. 다음 코드를 사용했습니다.

FileUpload.jsp

<form:form commandName="fileUpload" action="upload.action" method="post"  enctype="multipart/form-data">
<form:label path="fileData">Upload a File</form:label> <br />
<form:input type="file"  path="fileData" />
<input type="submit" value="upload" >
</form:form>

내 컨트롤러 :

@RequestMapping("/upload.action")
public String upload(@ModelAttribute("fileUpload") FileUpload fileUpload,HttpServletResponse response,Model model)
{
    CommonsMultipartFile multipartFile = fileUpload.getFileData();
    String orginalName = multipartFile.getOriginalFilename();
    String filePath = "/my_uploads/"+orginalName;
    File destination = new File(filePath);
    String status ="success";
    try {
        multipartFile.transferTo(destination);
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        status="failure";
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        status="iofailure";
    }
    model.addAttribute("status", status);
    return "home";
}

FileUpload.java :

{
   private CommonsMultipartFile fileData;
   ....
}

NullPointerException이 줄에서 throw됩니다. String orginalName = multipartFile.getOriginalFilename (); .. 내가 뭘 잘못 했니 ??

해결법

  1. ==============================

    1.요청 핸들러에 MultipartFile을 매개 변수로 추가하십시오.

    요청 핸들러에 MultipartFile을 매개 변수로 추가하십시오.

    @RequestMapping("/upload.action")
    public String upload(@RequestParam(value = "file") MultipartFile file,
            HttpServletResponse response,Model model)
    {
        //Controller logic...
    }
    

    이렇게하려면 운영자의 구성에 새 빈을 등록해야합니다.

    <bean id="multipartResolver"
       class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="5000000"/>
    </bean>
    
  2. ==============================

    2.

    @RequestMapping("/upload.action")
    public String upload(@RequestParam("fileData") MultipartFile file,
            HttpServletResponse response,Model model)
    {
        //Controller logic...
    }
    

    요청 핸들러 메소드의 매개 변수에 같은 이름을 지정해야합니다. 매개 변수에 있어야하는 multipartFile ( "fileData")의 FileUpload Pojo에서 지정한 것과 동일해야합니다.

    감사,

  3. from https://stackoverflow.com/questions/14101558/file-upload-to-server-directory-using-spring-mvc by cc-by-sa and MIT license