IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Vérifier taille d'un fichier avant upload


Sujet :

Développement Web en Java

  1. #1
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut Vérifier taille d'un fichier avant upload
    Bonjour,

    Dans mon formulaire, il est autorisé d'uploader X fichiers tant qu'on ne dépasse pas une taille T .
    Si T vaut 1 Mo, l'utilisateur peut uploader un fichier de 1 Mo ou 5 fichiers de 200 Ko ou 3 fichiers de 300 Ko ..

    Afin de rendre ceci dynamique, j'avais pensé à un système : Sur les <input type="file"..> grâce à l'event "onChange" , j'appelais une servlet grâce à Window.opener.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="file" name="file1" onChange="OpenPopup(/CheckFile?link=1','popupchoix','width=300,height=150,menubar=no,status=no');"/>
    Get - CheckFile.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    getServletConfig().getServletContext().
    getRequestDispatcher("html/checkFile.jsp").forward(request, response);
    Je créais un nouveau form sur une page popup enfant, en initialisant le value du nouveau input file avec la même valeur que l'input de la page parent. Ensuite submit() qui renvoit vers la servlet

    checkFile.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <html>
    <HEAD>
    	<title> Upload de fichier </title>
    </HEAD>
    <body onblur="window.focus()">
    <% if(request.getParameter("fileUploaded")==null)
    {%>
    <form action="/MCIC/WeiCheckFile" method="post" enctype="multipart/form-data" name="checkSizeForm">
    	<input type="file" name="myFile" id="myFile" value="c:\\file95_2010-06-18.jpg"/> 
    	<input type="submit" value="Valider"/>
    	<SCRIPT language="javascript">
    		document.getElementById('myFile').value = window.opener.document.getElementById('file<%= request.getParameter("link")%>').value;
    		document.checkSizeForm.submit();
    	</SCRIPT>
    </form>
    <% } else { %>
    LE FICHIER A ETE UPLOADE  :)
    	<SCRIPT language="javascript">
    		alert("voici : " + window.opener.document.getElementById("filesSize1".value);
    	</SCRIPT>
    <% }%>
    </body>
    </html>
    La Servlet teste la taille du fichier et ensuite, sur la fenêtre parent, je peux autoriser ou non selon la taille restante, l'upload d'un nouveau fichier.

    POST - CheckFile.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    String contentType = item.getContentType();
    						System.out.println("taille : " + taille +" contenu : " + contentType + " name : " + fileName);
    if((taille >0 && contentType.equalsIgnoreCase("application/octet-stream"))||contentType.equalsIgnoreCase("application/x-zip-compressed"))
    								emptyFields+="Format du fichier " + fieldName+"  non autorisé ou fichier ouvert";
    if(!controller.checkFileSize(taille))
     
      emptyFields+="La taille du fichier  " + fieldName+" est trop grande";
    } 					
    }
    //Redirect to the main JSP
    getServletConfig().getServletContext().
    getRequestDispatcher("html/checkFile.jsp?fileUploaded=YES").forward(request, response);
    Le problème est qu'on ne peut modifier la valeur d'un input de type file
    Bien entendu, je ne peux pas utiliser AJAX, sinon ça serait plus facile..

    Est-ce qu'une autre solution est envisageable ?

    Merci d'avance.

  2. #2
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Je suppose que c'est là que HTML + JAVASCRIPT montre ses limites

Discussions similaires

  1. Vérifier la taille d'un fichier avant upload
    Par omar344 dans le forum Flash
    Réponses: 0
    Dernier message: 01/10/2012, 15h04
  2. Vérifier taille d'un fichier avant upload
    Par Guillaume_Caldera dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 17/11/2009, 09h32
  3. Controler taille fichier avant upload
    Par hugo69 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 22/12/2008, 11h09
  4. Contrôle de la taille de fichiers avant upload
    Par flashy38 dans le forum Web
    Réponses: 3
    Dernier message: 10/10/2008, 11h01
  5. Tester la taille de fichier avant upload
    Par RobinNono dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 27/06/2006, 17h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo