2010-05-16 2 views
0

J'ai un code qui lit un fichier via un champ de formulaire de fichier de typeComment détecter si un élément d'entrée sous forme de fichier de type est vide

<input type="file" ... /> 

Je veux donner à l'utilisateur une autre possibilité de fournir une URL à un fichier plutôt que d'avoir à le télécharger comme beaucoup sont déjà en ligne.

Comment puis-je détecter lorsque ce champ est vide côté serveur? J'utilise Apache Commons FileUpload

FileItemStream item = iter.next(); 
    name = item.getFieldName(); 
    stream = item.openStream(); 
     if(!item.isFormField()){ 
      if(item.toString()!=""){ 
       .... 

je dois détecter item est vide. Le code ci-dessus ne fonctionne pas, ni ne l'aide:

if(item.equals(null)){ 


    .... 

Répondre

4

Vous ne pouvez pas appeler item.equals(null) lorsque l'article est nul. Vous devez le tester comme ceci:

if(item == null) { 
    ... 
} 
+0

Merci - Je pensais que je l'avais essayé, mais ressemble à ça a marché. J'accepterai votre réponse dès que la limite de temps sera écoulée. – Ankur

-1

Pour vérifier une entrée de fichier vide sous la forme tout en uploding un fichier sur le serveur mieux suivre mes instructions 1. Utilisation @MultipartConfig() en haut de votre classe servlet 2. ajouter la méthode suivante à votre classe

private InputStream getImageStream(HttpServletRequest request, String image){  
     try { 
      Part part = request.getPart(image); 
      String header = part.getHeader("content-disposition"); 
      InputStream input = null; 
      if(header.contains("filename")){ 
       input = part.getInputStream(); 
      }    
      return input; 
     } catch (IOException | ServletException e){ 
      e.printStackTrace(); 
     } 
     return null; 
    } 

Description code

  • le code obtenir le fichier en utilisant la construction dans la classe "partie"
  • Ensuite, il assignera tout le contenu de la partie d'objet que nous appelons en utilisant request.getPart (image), où "image" est le nom de l'entrée de fichier dans votre champ de formulaire. Et l'assigner à l'objet String "header"
  • Si vous transférez un fichier dans le champ de saisie, le "header" contiendra un "nom de fichier" et si c'est le cas, vous téléchargez un fichier et vous l'affectez à l'entrée InputStream sinon le est pas de fichier et l'entrée InputStream sera affecté à null par défaut
  • retour l'objet InputStream

    et dans votre méthode get ou post appeler la méthode ci-dessus avec le code ci-dessous

    InputStream school_pic = getImageStream (requête, "schoolPic");

  • où « schoolPic » est le nom de votre fichier d'entrée sous la forme

  • C'est tout Gusy

+0

http://meta.stackoverflow.com/questions/334822/how-do-i-ask-and-answer-homework-questions – Aaron