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 :

Récupérer la taille d'un fichier


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de kivan666
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Points : 177
    Points
    177
    Par défaut Récupérer la taille d'un fichier
    Bonjour, je cherche un moyen de récupérer la taille d'un fichier passé dans un formulaire via un champs "file" AVANT soumission de ce formulaire...

    1. l'utilisateur selectionne via le input file du formulaire un fichier de son disque dur
    2. quand il click sur l'envoie du formulaire une javascript vérifie la taille du fichier, si elle est inférieur à une taille donnée on valide le formulaire et il est posté... sinon message d'erreure à l'utilisateur...

    est-ce possible ?
    merci d'avance

  2. #2
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    Pour avoir un arrondi de la taille en Ko :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    round(filesize($filearchive)/1000,1)
    (par contre, c'est du PHP, je sais pas si c'est ça que tu voulais ...)

  3. #3
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    Sinon en javascript il existe la méthode size() pour le type File

  4. #4
    Membre habitué Avatar de kivan666
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Points : 177
    Points
    177
    Par défaut
    bah non, parce que si c'est du php ca me force à soumettre le formulaire et donc à uploader le fichier potentiellement trop gros...
    or je veux justement éviter cela et vérifier la taille du fichier AVANT envoie

  5. #5
    Membre habitué Avatar de kivan666
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Points : 177
    Points
    177
    Par défaut
    Citation Envoyé par linar009
    Sinon en javascript il existe la méthode size() pour le type File
    il me semble que cette fonction ne fait que retourner la taille de la page en cours non ?
    document.size ??

  6. #6
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Je crois qu'il veut dire InputFileHTMLElement.size
    __________________
    Lol, au fait, le renard, il va se casser les dents en mordant dans le brique

  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 640
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    heu la brique IE explorer ...

  8. #8
    Membre habitué Avatar de kivan666
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Points : 177
    Points
    177
    Par défaut
    Citation Envoyé par FremyCompany
    Je crois qu'il veut dire InputFileHTMLElement.size
    __________________
    Lol, au fait, le renard, il va se casser les dents en mordant dans le brique
    inconnue sur google, tu es sur de toi ?

  9. #9
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Citation Envoyé par kivan666
    inconnue sur google, tu es sur de toi ?
    Sûr de moi ? pas du tout, je ne fais qu'interpreter ce que linar009 a dit

    Essaie et tu verras bien si ca marche ou pas... (lol, mais je crois avoir entendu que ca marchait pas sur FF (non c'est pour rire )

  10. #10
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Citation Envoyé par kivan666
    Bonjour, je cherche un moyen de récupérer la taille d'un fichier passé dans un formulaire via un champs "file" AVANT soumission de ce formulaire...

    1. l'utilisateur selectionne via le input file du formulaire un fichier de son disque dur
    2. quand il click sur l'envoie du formulaire une javascript vérifie la taille du fichier, si elle est inférieur à une taille donnée on valide le formulaire et il est posté... sinon message d'erreure à l'utilisateur...

    est-ce possible ?
    merci d'avance
    La seule solution que j'imagine possible serait de créer un applet java
    signé, qui lui aurrait droit d'accéder aux fichiers pour connaitre la taille.

    A ma connaissance, en javascript, ce n'est pas encore possible. je dis pas
    encore, car après avoir cherché longtemps une solution, je suis tombé
    sur pas mal d'idées allant dans ce sens.

    Une fois que l'utilisateur a choisi un fichier, cela ne me semble pas un
    problème de sécurité que le navigateur mette à disposition du javascript
    des informations comme la taille, le mime type etc...

  11. #11
    Membre habitué Avatar de kivan666
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Points : 177
    Points
    177
    Par défaut
    ouai, après recherche je pense aussi que ce serait plus faisable en java...

    merci

  12. #12
    Membre habitué Avatar de kivan666
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Points : 177
    Points
    177
    Par défaut
    je tiens à ce que mon site soit fonctionnel IE et FF... donc pas d'active X...

  13. #13
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Citation Envoyé par kivan666
    je tiens à ce que mon site soit fonctionnel IE et FF... donc pas d'active X...
    Et bien qu'a cela ne tienne ! Je suppose que tu veux qu'un upload ne soit activé que si le fichier ne dépasse pas X méga. Sur un onsubmit de formulaire : onsubmit="return validateFile(document.getElementsById("fileToUpload"))"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    validateFile=function(fileInput) {
        if (window.ActiveXObject) {
             // Effectuer la validation
             if (theSize < (5 * 1024 * 1024)) {
                   // OK
                   return true;
             } else {
                   alert("Fichier trop volumineux !"); return false;
             }
        } else {
             // Impossible de faire la validation sur un autre navigateur qu'IE !
             return true;
        } 
    }

  14. #14
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    Citation Envoyé par FremyCompany
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        } else {
             // Impossible de faire la validation sur un autre navigateur qu'IE !
             return true;
        } 
    }
    Mdr

  15. #15
    Membre habitué Avatar de kivan666
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Points : 177
    Points
    177
    Par défaut
    merci Fremy, mais ce que je veux dire par "compatible IE et FF" c'est que chaque script doit marche sur les deux...
    Or là ca marche sous IE, mais envoie un message d'erreure sous FF...

  16. #16
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    La seule chose que tu puisse faire pour limiter la taille du fichier, c'est d'utiliser l'attribut maxlength de ton input au pire...

    Sachant qu'en gros un caractère = 1 octet

  17. #17
    Membre habitué Avatar de kivan666
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Points : 177
    Points
    177
    Par défaut
    mais maxlength défini le nombre de caractères rentrés dans le input, par exemple "C:\\monfichier.txt" va retourner 18... et pas le nombre de caractères de "monFichier.txt".... non ?

  18. #18
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    Oui, oui exact. Autant pour moi...
    J'avais cru comprendre que tu affichais le contenu de ton fichier dans ton input mais c'est juste le nom du fichier que tu affiches.
    Excuse moi je dis n'importe quoi! c'est vrai que maintenant, après reflexion, je ne vois pas l'interet (dans ton cas) d'afficher le contenu du texte dans l'input.
    D'ailleurs, maintenant que j'y pense : si tu utilisais un input hidden dans lequel tu placerais le contenu de ton fichier
    Bon je sais c'est pas très propre ni très performant mais c'est quand même une solution.
    Après je te déconseille si tu acceptes des tailles de fichier allant jusqu'à 20 Go lol

  19. #19
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    Au fait, je sais qu'il existe des input type=file
    Mais je n'ai jamais utilisé donc à toi de te renseigner ...

  20. #20
    Membre habitué Avatar de kivan666
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Points : 177
    Points
    177
    Par défaut
    mais c'est un input type=file dont je parle...
    ce dernier me renvoie le fichier à uploader et c'est la taille de celui-ci que je veux récupérer sans l'uploader...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [ASP.NET 2.0][C#] Récupérer la taille d'un fichier
    Par toinou62 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 15/02/2008, 15h48
  2. Réponses: 1
    Dernier message: 18/02/2007, 19h33
  3. Récupérer la taille d'un fichier
    Par vodevil dans le forum Langage
    Réponses: 12
    Dernier message: 19/07/2005, 17h53

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