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

JavaScript Discussion :

Tester la taille de fichier avant upload


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 66
    Points : 45
    Points
    45
    Par défaut Tester la taille de fichier avant upload
    Salut tlm!
    Dans un formulaire, j'upload 3 fichiers en base.
    je cherche une méthode pour pouvoir tester le poids de chacun des fichiers avant de lancer l'upload.
    J'ai bien trouvé la méthode request.totalbytes, mais apparemment elle ramène le poids de l'ensemble des fichiers.
    Auriez-vous une idée?
    Merci pour votre aide!
    @+

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    ASP etant une techno serveur, c'est pas possible. On ne peut pas savoir avant d'avoir chargé le fichier.
    Je sais que cela existe. Faut aller voir du côté javascript.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 386
    Points : 275
    Points
    275
    Par défaut
    moi j'ai fait ça mais avec du php, avec filesize, il verifie si la taille est inferieure la $taille_max si oui il upload avec message de confirmation sinon il upload pas et il averti que l'upload a echoué

  4. #4
    Membre averti Avatar de NeHuS
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 343
    Points : 316
    Points
    316
    Par défaut
    oui mais ce n'est pas optimisé car tu dois charger le fichier dans tous les cas pour faire le test ?

    Le mieux est de controler la taille au niveau du client ( d'ou js ) pour ne pas charger inutilement le ou les fichiers
    Cliquez sur

    Evitez de mettre Probleme
    dans les titres de vos posts

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 386
    Points : 275
    Points
    275
    Par défaut
    Citation Envoyé par Immobilis
    On ne peut pas savoir avant d'avoir chargé le fichier.
    Apparament on est obligé de charger le fichier, donc.. mes connaissances ne sont pas tres étendues il y a peut etre d'autres solutions

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    Merci pour vos réponses!
    l'idéal serait biensûr de ne pas les uploader si les fichiers sont trop volumineux... mais si vous avez une solution où l'on est obligés de télécharger, ça me va!

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    ce n'est pas possible en javascript, l'accès de javascript aux fichiers est très limité ...
    Voir du coté de vbscript et fso ... (mais ça limite à IE)
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Membre régulier Avatar de sorenson
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 84
    Points
    84
    Par défaut
    Bonjour,

    pour récupérer la taille d'un fichier avec javascript, tu peut utiliser une fonction javascript Xhttp et un fichier php.

    fichier php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?
    //Récupère le nom du fichier (chemin relatif).
    if(isset($_REQUEST["file"]){
    $file=$_REQUEST["file"];
    print filesize($file);
    }else{
    $file=0;
    }
    ?>
    la fonction javascript :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    function recupTaille(){
     
    var xhr_object=null;
     
    /**
    * Vérifie la compatibilité du navigateur avec XHttp et créer un nouvel objet  XHttp.
    */
    if(window.XMLHttpRequest)
     xhr_object=new XMLHttpRequest(); //Pour Firefox
    else if(window.ActiveXObject)
     xhr_object=new ActiveXObject("Microsoft.XMLHTTP"); //Pour Explorer
    else
     return false;
    }
     
    //Ouvre le fichier php en lui passant le nom fichier (chemin relatif) en argument.
    xhr_object.open("POST","fichierphp?file="+cheminFichier,true)
     
    //Observe l'execution du fichier php.
    xhr_object.onreadystatechange=function(){
     
    //readyState prend plusieurs valeurs. 4 (complete) signifie que le fichier a été executé correctement. On aurait pu écrire xhr_object.readyState=="complete"
     
     if(xhr_object.readyState==4){
     var tailleFichier=xhr_responseText;
     //Test avec popup.
     alert(tailleFichier);
     //Test avec la barre de chargement.  
     window.status=tailleFichier;
     }
    }
     
    }
     
    xhr_object.send(null);
     
    }

  9. #9
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    Hmm cette dernière "solution" suppose que le fichier à tester est déjà sur le serveur (1) et soit accessible par PHP (2), vu que le script PHP va faire un filesize sur un path qu'on lui donne...
    Alors qu'en général une personne uploade un fichier sur un serveur qui lui est distant.

    Un ActiveX (Scripting.FileSystemObject) pourrait faire l'affaire, mais bon, les trucs qui marchent que sous IE, beuark.
    Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure

  10. #10
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    +1

    Et c'est pas $_REQUEST["file"] mais $_FILE qu'il faut utiliser... .. .

    @ tchaOo°

  11. #11
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    Citation Envoyé par kankrelune
    Et c'est pas $_REQUEST["file"] mais $_FILE qu'il faut utiliser... .. .
    pas dans son exemple en fait, car lui veut passer un path à un fichier en GET, et ensuite récupérer ce chemin pour faire un filesize dessus, sans upload ni rien quoi.
    Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure

  12. #12
    Membre régulier Avatar de sorenson
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 84
    Points
    84
    Par défaut
    re,

    effectivement... ma solution ne fonctionne pas en cas d'upload. L'upload signifiant que l'utilisateur envoie un fichier sur un serveur distant dans le cadre d'une mise à jour par exemple.

    Toutes mes excuses. A voir peut-être avec un activeX, mais il faut qu'il soit présent sur la machine de l'utilisateur et alors là Win Xp et Xp service pack 2... quel f*toir.

  13. #13
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par bkill
    pas dans son exemple en fait, car lui veut passer un path à un fichier en GET, et ensuite récupérer ce chemin pour faire un filesize dessus, sans upload ni rien quoi.

    Oui j'avais bien compris... sauf que l'upload en local ça ne sert à rien... autant copier coller le fichier... ...donc il faut uploader sur le serveur distant donc $_FILE et tout le tintouin... .. .

    @ tchaOo°

  14. #14
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Et là http://msdn.microsoft.com/library/de...resschange.asp

    Mais ça redevient de l'ASP
    "Winter is coming" (ma nouvelle page d'accueil)

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 libuma dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 05/08/2010, 16h08
  3. 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
  4. Controler taille fichier avant upload
    Par hugo69 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 22/12/2008, 11h09
  5. Contrôle de la taille de fichiers avant upload
    Par flashy38 dans le forum Web
    Réponses: 3
    Dernier message: 10/10/2008, 11h01

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