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

Entrée/Sortie Java Discussion :

obtenir la taille d'un fichier à partir de son URL


Sujet :

Entrée/Sortie Java

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 30
    Par défaut obtenir la taille d'un fichier à partir de son URL
    Voila j'ai fait un code pour télécharger un fichier
    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
     
     
    		try { //prise en compte des exceptions obligatoire
    			URL url = new URL(PATH) ; //on localise le le fichier à télécharger
    			InputStream is = url.openStream() ; //on ouvre un flux de lecture sur le fichier à télécharger
    			int longueur = is.available() ; //on demande le nombre de bytes disponible
    			PrintStream ps = new PrintStream(new FileOutputStream(F)) ; //on créer un flux d'écriture sur le fichier local
    			int count = 0 ;
    			byte[] b = new byte[longueur] ; //tableau de byte utiliser pour sotcker les donnée telecharger
    			while(true) { //boucle sans fin
    				int len = is.read(b,0,longueur) ;
    				if (len == -1) break ; //si read renvoit -1, c'est que le téléchargement est terminer
    				count += len ; //count = count + len se qui permet d'avoir le total télécharger
    				ps.write(b,0,len) ;
    			}
    			ps.close() ; //on ferme le flux d'écriture
    		}
    		catch (Exception e) {
    			System.out.println("Erreur : " + e) ; en a une
    		}
    je précice que len et le nombre de bytes que read place dans le tableau b
    il faut rappeler read puis additioner tous les len pour avoir le total mais coment avoir le total en ayant pas encors télécharger le fichier

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il ne faut pas utiliser openStream() mais openConnection() qui permet de manipuler la connection plus facilement, et d'avoir plus d'info comme la taille avec getContentLength()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    URL url = new URL(PATH) ; //on localise le le fichier à télécharger
    URLConnection con = url.openConnection();
    int taille = con.getContentLength(); // récupère la taille
     
    InputStream is = con.getInputStream() ; //on ouvre un flux de lecture sur le fichier à télécharger
     
    ...
    Toutefois cette information peut ne pas être envoyé par le serveur (-1 dans ce cas).

    Et je te conseille d'utiliser des try/finally pour la fermeture des flux...

    a++

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 30
    Par défaut
    merci pour cette reponse je vient d'essayer mais le serveur me repond -1
    n'y à t-il pas une autre solution ?
    sinon je ferrai sans...

    @+

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par djanos
    merci pour cette reponse je vient d'essayer mais le serveur me repond -1
    n'y à t-il pas une autre solution ?
    Si le serveur ne renvoi pas l'info je ne vois pas comment tu pourrais l'avoir...


    Si tu télécharges ce fichier avec un navigateur, la taille est affiché ou pas ?

    a++

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 30
    Par défaut
    je vient d'essayer pour un autre fichier et sa marche !!
    merçi beaucoup et effectivement mon navigateur de m'indique pas la taille non plus pour les fichier precedant

    a+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.3] Obtenir le nom d'un fichier à partir d'une url dynamique
    Par Invité dans le forum Langage
    Réponses: 3
    Dernier message: 19/03/2012, 11h02
  2. [WD14] Récupération de la taille d'un fichier à partir d'une URL
    Par link256 dans le forum WinDev
    Réponses: 4
    Dernier message: 28/01/2010, 16h47
  3. obtenir la taille d'un fichier
    Par Wael Maaoui dans le forum Général Python
    Réponses: 1
    Dernier message: 26/04/2007, 16h01
  4. Réponses: 1
    Dernier message: 18/02/2007, 19h33
  5. Comment obtenir la taille d'un fichier?
    Par Bruno29 dans le forum Flash
    Réponses: 3
    Dernier message: 16/01/2007, 20h05

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