2017-08-28 74 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()); 
      } 
.... 
    }