2010-09-15 7 views
1

Je travaille sur une application web Spring et je dois implémenter un simple FileUpload pour l'une de mes pages.Problème avec FileUpload - Valeur nulle pour le fichier multi-parties

La page de la page JSP contient l'extrait de code suivant qui inclut un champ de téléchargement pour télécharger le fichier.

<form:form commandName="editMemberInfoModelObj" method="post" enctype="multipart/form-data"> 
     <h1>Edit Member Information</h1> 
     <table> 
      //Other Form Input Fields ... 
      <tr> 
       <td>File</td> 
       <td><input type="file" name="file"/></td> 
      </tr> 
      <tr> 
       <td><input type="submit" value="Update Info"/></td> 
      </tr> 
     </table> 
    </form:form> 

Le modèle de cette JSP se présente comme suit

public class EditMerchandiserModel(){ 
     private MultipartFile file; 

     //getters and setters for all the properties 
} 

Le code dans le contrôleur qui gère le chargement de fichiers ressemble à la

suivante
if(model.getFile().isEmpty()) -->THROWING NULLPOINTER EXCEPTION HERE 
    { 
     MultipartFile file = model.getFile(); 
     String fileName = file.getOriginalFilename(); 
     String filePath = "/usr/local/" + fileName; 
     FileOutputStream fos = new FileOutputStream(filePath); 
     try 
      { 

      fos.write(file.getBytes()); 
     } catch (IllegalStateException e) { 
      System.out.println(e); 

     } 
     finally{ 
      fos.close(); 
     } 
    } 

Je suis incapable de frapper la code interne car il lit dans le fichier une valeur nulle. Pourquoi ne lie-t-il pas la valeur au champ?

Répondre

4

Il semble que votre boîte de saisie de fichier porte le nom «fichier» alors que la propriété à laquelle elle est censée être liée porte le nom «photo» (au moins, vous essayez de la récupérer en utilisant «getPhoto()». intelligent, mais ce n'est pas si intelligent. :)

+0

Haha ... bonne prise, l'histoire est en fait qu'il était à l'origine appelé photo, mais je l'ai changé en fichier afin de le rendre générique pour ce poste, mais Merci, je vais faire l'édition pour ça ... merci beaucoup – TheJediCowboy

+0

Hé j'ai trouvé quel est le problème haha ​​... C'était un problème d'injection de dépendances, mais en plus je me suis trompé une fois que j'ai corrigé ça ... vous remarquerez qu'il indique if (model.getFile(). isEmpty()) au lieu de vérifier s'il n'est pas vide. Merci de votre aide! – TheJediCowboy

Questions connexes