2017-08-28 75 views
0

上傳文件,我嘗試將的.csv文件的數據上傳到數據庫,但是當我上傳並提交它,它拋出nullpointexception。意思是,當我打印名稱在控制器中,名稱被打印,但是當我嘗試獲取該文件時,它顯示nullNullPointException而在春季

文件上傳模型類

public class FileUpload { 
    private CommonsMultipartFile[] files; 
    private String name; 

    // Getters and setters 
} 

控制器

@RequestMapping(value = "uploadPage", method = RequestMethod.GET) 
    public ModelAndView uploadPage() { 
     ModelAndView model = new ModelAndView("upload_page"); 
     FileUpload formUpload = new FileUpload(); 
     model.addObject("formUpload", formUpload); 
     return model; 
    } 

    @RequestMapping(value = "/doUpload", method = RequestMethod.POST) 
    public String doUpload(@ModelAttribute("formUpload") FileUpload fileUpload, BindingResult result) throws IOException, JAXBException { 

     System.out.println("myfirl "+fileUpload.getFiles()); // output is null 
     System.out.println("name "+fileUpload.getName()); // name is displaying 

     //other stuffs 

} 

upload_page

<spring:url value="/doUpload" var="doUploadURL"/> 
<form:form method="post" modelAttribute="formUpload" action="${doUploadURL }" enctype="multipart/form-data"> 
    <form:input path="files" type="file" multiple="multiple"/> 
    <form:input path="name" type="text"/>  
    <button type="submit">Upload</button> 
</form:form> 

WebConfig

@Bean(name="multipartResolver") 
public CommonsMultipartResolver getResolver(){ 
    CommonsMultipartResolver commonsMultipartResolver=new CommonsMultipartResolver(); 
    commonsMultipartResolver.setMaxUploadSizePerFile(20*1024*1024); 

    return commonsMultipartResolver; 
} 

我想它在許多方面理清,但未能成功。任何人都試圖把它整理出來?在此先感謝

+0

使用接口'MultipartFile'而不是具體類型'CommonsMultipartFile'模型中的對象。此外,你應該使用一個列表,而不是一個數組(如果內存爲我服務)。 –

+0

它仍然顯示爲空,我的問題是,控制器沒有得到文件@deinum – varman

回答

0
@RequestMapping(value = "/uploadFile", method = RequestMethod.POST) 
@ResponseBody 
public String uploadFileHandler(@RequestParam("file") MultipartFile file) { 
     if (!file.isEmpty()) { 
     System.out.println(file.getName); 
     } 
} 

,或者你能做到這一點

@RequestMapping(value = "/uploadFile", method = RequestMethod.POST) 
    public String uploadFileHandler(MultipartHttpServletRequest request) { 
      Iterator<String> itr = request.getFileNames(); 
      while (itr.hasNext()){ 
       System.out.println(itr.next().toString()); 
      } 
.... 
    }