Est-il possible de connaître la taille d'un fichier avant de le télécharger avec Java ? Je ne trouve aucune info là-dessus, ni dans la FAQ, ni sur le net...
Est-il possible de connaître la taille d'un fichier avant de le télécharger avec Java ? Je ne trouve aucune info là-dessus, ni dans la FAQ, ni sur le net...
Personnellement, je vois pas trop comment...
Tu peux peut etre avoir ca dans les premiers paquets du transfert, mais rien n'est moins sur...
Tu as ca sur certains serveurs bien fait, qui, notamment un transfert fait avec servlet, tu donnes la taille du flux en sortie en info, au ServletOutputStream, mais sinon, il n'y a aucune raison que cette info soit transmise...
En passant par FTP, tu peux effectivement l'avoir, mais en HTTP, je vois pas trop... Mais je ne me pretends pas expert en la matiere, HTTP is not my daily cup of tea...
J'ai tout de même réussi d'une manière un peu détourner et via le HTTP !
Je lis les headers du documents et j'isole le header "Content-Length" qui donne la taille en octets.
Je mets le code à tous hasard :
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 public static String getFileSize (String url) throws Exception { URL aURL = new URL (url); URLConnection yc = aURL.openConnection (); String header = ""; int i = 0; while ((header = yc.getHeaderField (i)) != null) { if (yc.getHeaderFieldKey(i) != null) { if (yc.getHeaderFieldKey (i).equals ("Content-Length")) return header; } i++; } return "-1" ; }
Honte a moi...
Je suis fatigué en ce début de semaine...
Plop, j'ai trouvé une méthode peut etre un peu moin "bidouille"
Je reprend ton code et je le change
Voila, je l'ai tappé en live donc désolé s'il y'a une petite faute de frappe ou deux :p
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public static String getFileSize (String url) throws Exception { URL aURL = new URL (url); URLConnection yc = aURL.openConnection (); // recupere la taille du fichier ..... int FileLenght = yc.getContentLength(); if (FileLenght == -1 ) { throw new IOException("Fichier non valide."); } return FileLenght; }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager