2017-08-28 3 views
0

ich versuche, eine CSV Datei die Daten in die Datenbank zu laden, aber wenn ich es hochladen und senden, wirft es nullpointexception. Bedeutet, wenn ich Name in Controller, Name gedruckt werde, aber wenn ich versuche, um die Datei zu erhalten, zeigt es null.NullPointException während Datei im Frühjahr Hochladen

Fileupload-Modellklasse

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

    // Getters and setters 
} 

-Controller

@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; 
} 

Ich habe versucht, es in vielerlei Hinsicht zu klären, scheiterte aber. Jeder versucht es zu klären? Vielen Dank im Voraus

+0

die Schnittstelle Verwenden 'MultipartFile' anstatt den konkreten Typ' CommonsMultipartFile' in Ihrem Modell-Objekt. Auch sollten Sie eine Liste anstelle eines Arrays verwenden (wenn der Speicher mir gut tut). –

+0

immer noch zeigt es Null, mein Problem ist, Controller erhält nicht die Datei @Deinum – varman

Antwort

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

oder Sie können tun, dass

@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()); 
      } 
.... 
    } 
Verwandte Themen