begin process at 2012 02 04 15:53:40
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Reseaux et Internet

 > TELECHARGER UN FICHIER A PARTIR D'UNE URL

TELECHARGER UN FICHIER A PARTIR D'UNE URL


 Information sur la source

Note :
8 / 10 - par 13 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Reseaux et Internet Classé sous :téléchargement, fichier, url, http Niveau :Initié Date de création :13/10/2005 Date de mise à jour :25/03/2007 13:23:25 Vu :65 467

Auteur : sheorogath

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (48)
Ajouter un commentaire et/ou une note


 Description

ce programme telecharge un fichier a partir d'une url donne par parametre !!!
il telecharge le fichier dans le repertoire local de l'application

Source

  • //
  • import java.net.*;
  • import java.io.*;
  • public class UrlUtils {
  • public UrlUtils(String HOST) {
  • try {
  • URL racine = new URL(HOST);
  • getFile(racine);
  • } catch (MalformedURLException e) {
  • System.err.println(HOST + " : URL non comprise.");
  • } catch (IOException e) {
  • System.err.println(e);
  • }
  • }
  • public void getFile(URL u) throws IOException {
  • URLConnection uc = u.openConnection();
  • String FileType = uc.getContentType();
  • int FileLenght = uc.getContentLength();
  • if (FileLenght == -1) {
  • throw new IOException("Fichier non valide.");
  • }
  • InputStream in = uc.getInputStream();
  • String FileName = u.getFile();
  • FileName = FileName.substring(FileName.lastIndexOf('/') + 1);
  • FileOutputStream WritenFile = new FileOutputStream(FileName);
  • byte[]buff = new byte[1024];
  • int l = in.read(buff);
  • while(l>0)
  • {
  • WritenFile.write(buff, 0, l);
  • l = in.read(buff);
  • }
  • WritenFile.flush();
  • WritenFile.close();
  • }
  • }
// 
import java.net.*;
import java.io.*;

public class UrlUtils {

	public UrlUtils(String HOST) {

		try {
			URL racine = new URL(HOST);
			getFile(racine);
		} catch (MalformedURLException e) {
			System.err.println(HOST + " : URL non comprise.");
		} catch (IOException e) {
			System.err.println(e);
		}

	}

	public void getFile(URL u) throws IOException {
		URLConnection uc = u.openConnection();
		String FileType = uc.getContentType();
		int FileLenght = uc.getContentLength();
		if (FileLenght == -1) {
			throw new IOException("Fichier non valide.");
		}
		InputStream in = uc.getInputStream();
		String FileName = u.getFile();
		FileName = FileName.substring(FileName.lastIndexOf('/') + 1);
		FileOutputStream WritenFile = new FileOutputStream(FileName);
		byte[]buff = new byte[1024];
		int l = in.read(buff);
		while(l>0)
		{
		WritenFile.write(buff, 0, l);
		l = in.read(buff);
		}
		WritenFile.flush();
		WritenFile.close();

	}

}



 Historique

25 mars 2007 13:23:25 :
on peut telecharger des fichiers de n'importe quelle taille j'ai aussi decrasser le code

 Sources du même auteur

Source avec Zip JAVA ET TERMINAL-CAPABILITY
Source avec Zip MOTEUR DE PLUGIN
Source avec Zip JARLOADER
Source avec Zip JOURNAL INTIME
Source avec Zip JTEXTPANE ETENDU ET FACILITE (LECTURE,ECRITURE RTF),COULEURS...

 Sources de la même categorie

Source avec Zip Source avec une capture SERVEUR D'OBJET ET EXEMPLE D UTILISATION : SERVER CHAT ET SO... par GodConan
Source avec Zip Source avec une capture RÉCUPÉRER CHEMIN DOSSIER DEPUIS POSTE DISTANT VIA SOCKET. par Dariumis
Source avec Zip Source avec une capture LOCALISATEUR D'HOTE (IL SUFFIT D'ENTRE L'ADRESSE ET LE PROG ... par amateur_java
Source avec Zip COMPTEUR DE TEMPS DE CONNEXION A L'INTERNET EN RESEAU. par Tiger076
Source avec Zip SERVEUR GENERIQUE par pacifikateur

 Sources en rapport avec celle ci

TELECHARGER UN FICHIER A PARTIR D'UNE URL par jaoued zahraoui
Source avec Zip Source avec une capture TÉLÉCHARGEUR FTP ET HTTP par karamimed
Source avec une capture TÉLÉCHARGEMENT D'IMAGES (POCHETTES CD, DVD, LIVRES...) SUR I... par dufour137
Source avec une capture VISUALISEUR D'ENTÊTE HTTP par n0stra
Source avec Zip Source avec une capture LIRE FICHIER VIA UNE APPLET par Berjac

Commentaires et avis

Commentaire de sheorogath le 17/10/2005 19:29:16 administrateur CS

laisser des commentaire avec vos notes svp !!
merci
++

Commentaire de GillesWebmaster le 06/01/2006 01:21:05

tu pourrais nous expliquer comment enregitrer le fichier vers une destination précise??? (ex: C:/monbazar/mesUrl/)
Merci
GillesWebmaster

Commentaire de sheorogath le 06/01/2006 17:55:49 administrateur CS

FileOutputStream WritenFile = new FileOutputStream("mochemin"+ "\\" +FileName);

Commentaire de capoueidiablo le 13/02/2006 18:38:07

Me concernant,

j'ai beau essailler d'utiliser t'as classe, il me prend bien le nom de fichier contenu dans l'url, me créer le fichier, mais ne le rempli pas, (il ne fait que 318octets) ...

une idée ?

Commentaire de sheorogath le 13/02/2006 18:39:16 administrateur CS

tu peut me passer l'url stp que je teste moi meme

Commentaire de capoueidiablo le 13/02/2006 18:43:05

wow, c'est super rapide :)
par exemple ca :
  http://radioshadowfox.webzzanine.net/sounds/Sonic 3 - FlyingBattery.rbs

les URLs sont récupérées dynamiquement et je les cast en string ... normalement y'a pas de souci

voila mon code :
  urltmp = new URL((String)lst_result.getSelectedValue());
  HTTPGetFile.getFile(urltmp);

Commentaire de capoueidiablo le 13/02/2006 18:51:14

Trouvé !!!

le problème survient lorsque le nom de fichier contient des espaces ... je pense qu'il faudrait les échapper ... je me penche sur le problème et je poste dès que je trouve ;)

Commentaire de sheorogath le 13/02/2006 18:58:25 administrateur CS

String trim()
;)

Commentaire de capoueidiablo le 13/02/2006 19:05:11


dans le constructeur
  // au debut juste apres le prototype du constructeur
  HOST = HOST.replace(" ", "%20"); // %20 est un espace en ascii

dans getFile(URL)
  FileName = FileName.substring(FileName.lastIndexOf('/') + 1);
  FileName = FileName.replace("%20", "_"); // et on enleve les %20 et on les remplaces par des '_'

voila, les trim c'set juste pour les espaces gauche et droit je crois bien ...

merci pour ta classe ;)

Commentaire de sheorogath le 13/02/2006 19:26:04 administrateur CS

ok ^^

de rien et content d'avoir pu etre utile ^^

Commentaire de bila5 le 29/03/2006 12:14:59

Bonjour tout le monde;
moi je cherche à telecharger un fichier (.html) mais j'arrive pas à le faire avec votre programme car ce que j'ai constaté qu'avec votre programme il faut donner l'url du fichier en spécifiant à la fin l'extention par exemple(http://www.liberte-algerie//LA UNE.pdf) ou n'importe quelle autre extention; or moi je cherche à telecharger la page d'acceuil de ce site(http://www.liberte-algerie) tout court mais avec cette url l'execution du  programme leve des exeptions et je sais pas quoi fare est ce que quelqu'un peut m'aider c'est urgent!!

Commentaire de sheorogath le 29/03/2006 14:53:59 administrateur CS

j'ai une autre source a mon actif qui s'appel recuperer le code html d'une page ou qqchose de ce genre ... tu l'adapte pour que le code sois ecris dans un fichier

++

Commentaire de capoueidiablo le 30/03/2006 00:28:56

BILA5
> Habituellement la page d'acceuil d'un site est soit index.html, index.php, index.aspx, ... enfin bref c'est index.xxx
> ensuite http://www.liberte-algerie ne fonctionne pas ... peu etre que c'est pour ca que ca marche pas, t'as essaillé avec un autre site ? google par exemple ...

Commentaire de bila5 le 02/04/2006 13:23:14

Merci capoueidiablo pour votre réponse, moi je m'interesse spécialement au site  http://www.liberte-algerie c'est pour ça que je ne peux pas essayer google ou autres sites et je te remercie pour l'idée que tu ma donné car j'ai pas fait attention qu'une page d'acceuil d'un site est index.xxx, alors je vais essayer et je vais voir merci encore une fois.

Commentaire de bila5 le 02/04/2006 13:56:23

Salamo alicom (Salut),
j'ai essayer de travailler avec index.xxx ça n'a pas marcher je suis déssus je ne sais pas quoi faire; enfin je vous remercie pour votre idée comme même et si vous avez une autre idée je serais trés enchantée de la connaitre marci.

Commentaire de capoueidiablo le 02/04/2006 15:14:14

Le lien de la page d'accueil est : http://www.liberte-algerie.com/index.php
voila voila :)

Commentaire de bila5 le 03/04/2006 12:33:44

bon merci capoueidiablo c'est vrai ce que vous m'avez dis, mais aprés moi je veux telecharger des pagesdu genre (http://www.liberte-algerie.com/rub.php?idrub=45&rubrique=Sport) si je veux telecharger la page d'une rubrique du journal; et donc j'ai trouver une solution et voila le code si quelqu'un s'interesse

import java.io.*;
import java.net.*;

public class telechargement
{
public static void main(String[] args)
{
  try
  {
   URL UrlTest = new URL("http://www.javafr.com");
   String text="";
   BufferedReader in = new BufferedReader(
                new InputStreamReader(
                              UrlTest.openStream()));
   String inputLine;
   while ((inputLine = in.readLine()) != null){
                                           text += inputLine +"\n";
                                          }  
   String FileName = UrlTest.getFile( );
   FileName = FileName.substring(FileName.lastIndexOf('/') + 1);                                              
   PrintWriter fichier = new PrintWriter(new FileWriter("C:\\"+ "\\" +FileName));
   fichier.write(text);                                        
   fichier.close( );
   in.close();
  
}
catch(Exception e){
                    System.out.println(e.getMessage());
                   }
}

}

Commentaire de sheorogath le 03/04/2006 18:36:59 administrateur CS

lol j'ai fait une source faisant a peu pres ce que tu fait sauf qu'elle n'ecris pas le contenu dans un fichier ( c'est l'affaire de 2 ou 3 ligne n plus)

++

Commentaire de kinski le 07/06/2006 16:18:27

" wow, c'est super rapide :)
par exemple ca :
  http://radioshadowfox.webzzanine.net/sounds/Sonic 3 - FlyingBattery.rbs"

On a eu exactement la meme idée ;)

Merci à sheorogath pour la source !

Commentaire de sheorogath le 07/06/2006 16:40:43 administrateur CS

avec plaisir^^

Commentaire de abhoryo le 30/06/2006 01:00:27

sheorogath, je pense qu'il y a un souci de OutOfMemory quand le fichier est trop volumineux. Une solution pour ça ?

Commentaire de abhoryo le 30/06/2006 01:49:42

D'après moi, il aime pas byte[] donnees = new byte[FileLenght]; quand le fichier est trop gros, le mien fait dans les 320000000 octets.
N'y aurait-il pas un moyen d'écrire bit à bit pour résoudre ce problème ?

Commentaire de sheorogath le 30/06/2006 10:46:40 administrateur CS

je n'ai jamais essayé

essai de faire
lire bit
tant que bit lu != -1

ecrire bit
lire bit

si j'ai le temps aujourd'hui j'essai de faire un petit code mais bon ca m'etonnerais
bonne chance

Commentaire de abhoryo le 30/06/2006 11:33:52

C'est bon ça marche bit a bit, en fait pour aller plus vite j'essaie de lire des bouts de 1024 bits et j'écris ceux qui ont étaient lu. J'avais poster un message hier soir mais ce matin je l'ai retrouvé effacé -_-.

Sinon j'ai fait un Applet dans lequel j'ai intégré ton code (il n'y a que ton code dedans). J'utilise jBuilder et quand je lance le projet sous jbuilder, il n'y a pas de souci, tout marche nickel.

Cependant quand je met mon .html sur mon site qui appel la classe que j'ai créer, Là ça ne marche plus. D'une j'ai le droit a un "java.security.AccesControlException : acces denied (java.io.FilePermission test.cab write)." . En fait je pense plutot qu'il essaie d'écrire sur le site plutot que sur le disque dur de celui qui navigue. Aurais-tu une solution a ce probleme ?

Merci d'avance.

Commentaire de sheorogath le 30/06/2006 11:48:54 administrateur CS

non il essai bien d'ecrire chez le client
une applet nas pas le droit d'ecrire sur le client
il faut qu'elle soit signe

je peux pas t'aider la dessus mes competance s'arrete au niveau des appli

les applet ne m'interresse pas

bonne chance

Commentaire de abhoryo le 30/06/2006 12:05:12

Pas de souci, je vais chercher des solutions.
Cependant qu'entends-tu par "qu'elle soit signe" ?

Commentaire de sheorogath le 30/06/2006 12:08:26 administrateur CS

qu'elle sois signé => avoir un certificat et ca demande au client si il veut executer l'applet ou pas

Commentaire de abhoryo le 30/06/2006 12:27:09

Oki merci bien pour tes renseignements :D

Commentaire de capoueidiablo le 02/10/2006 23:27:43

kinski > http://www.javafr.com/code.aspx?ID=39777 voila le résultat :) (à améliorer bien sûr)

Commentaire de vcherrier le 24/11/2006 16:35:58

je recherche en partit ce vous faite mais je souhaite aussi ecrit
sur un fichier qui est dans mon site internet, j'arrive à lire mais ecrire j'ai l'impression que l'on ne peut pas?
merci pour vos reponses.

Commentaire de sheorogath le 24/11/2006 17:42:33 administrateur CS

on ne peut evidemment pas sinon on pourrais modifier n'importe quel fichier ....

faut passer par un script genre php ou alors par le ftp ...

Commentaire de vcherrier le 27/11/2006 10:02:56

ok merci

Commentaire de areaq94 le 03/01/2007 14:58:17

Bonjour Pardonnez moi mais je ne comprends rien de ce qu'il faut faire....
j'aimerais recupéré ce fichier " trailerSplash.mov "  sur le site " www.rosariotijeraslapelicula.com " . Que dois-je faire et dans quoi je dois mettre le code cidessous.

Merci

Commentaire de sheorogath le 03/01/2007 16:39:50 administrateur CS

ben heu si tu connais pas le java c'est pas trop la peine
il te faut installe rle jdk
le compiler et le lancer en appelant la bonne url ...

Commentaire de areaq94 le 03/01/2007 16:56:12

sisi je m'y connais un peu j'apprends ça a l'ecole j, j'ai deja installé le jdk, mais comment je fais avec le code, il des trucs que je dois remplacer? ou ajouter, parceque ça c'est trop complexe pour moi encore. Merci

Commentaire de bloom1 le 05/01/2007 03:39:06

Et c'est normal que dans le JDK 1.6, ca fait une erreur avec un fichier de 68 Mo ?? Il me dit :
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
        at HTTPGetFile.getFile(HTTPGetFile.java:27) et cette ligne c'est elle byte[] donnees = new byte[FileLenght];
        at HTTPGetFile.<init>(HTTPGetFile.java:8) et elle c'est getFile(racine);
        at GDM.actionPerformed(Main.java:39) elle c'est quand je fais appuyer sur un bouton(c'est normal)

Alors vous pouvez m'aider ?

Commentaire de bloom1 le 05/01/2007 03:41:08

(P.S : le fichier fait 63 Mo)

Commentaire de sheorogath le 07/01/2007 13:54:17 administrateur CS

il faut que tu reprenne ce morceaux : byte[] donnees = new byte[FileLenght];
    int BitRead = 0;
    int deplacement = 0;
    while (deplacement < FileLenght) {
       BitRead = entree.read(donnees, deplacement, donnees.length-deplacement);
       if (BitRead == -1) break;
       deplacement += BitRead;
    }

en gros un tableau de 60 millions d'emplacement la jvm n'apprecie pas il faut donc lire par morceau avec des tableaux de byte mais pas de 60 mega ^^

je fini ma philo et si je le temps je refait le code

dans lepire des cas je le fait mardi

bonne soiree

Commentaire de bloom1 le 07/01/2007 20:03:37

Ok loll

Commentaire de sheorogath le 09/01/2007 19:11:16 administrateur CS

désolé je le poste vendredi ou demain aprem j'ai oubliais le code chez moi (disons que j'ai quelques problemes d'acces au net ces temps ci :$)

Commentaire de hassenra le 29/03/2007 14:02:39

désolée , mais je n'ai pas peux faire marché ce code.pour n'importe quel Url .il m'afiche:java.io.IOException: Fichier non valide.

Commentaire de sheorogath le 29/03/2007 19:02:58 administrateur CS

c'est quoi l'url

Commentaire de hassenra le 30/03/2007 15:11:27

voici un exemple d'url:"http://www.irit.fr/SIG_RFI/perso.html"

il m'affiche toujours le meme méssage:java.io.IOException: Fichier non valide.

s'il vous plais pouviez vous m'aider car c'est urgent.

Commentaire de Souliabdo le 08/04/2007 13:22:05

Bonjour,
J’ai essayé avec ce code il y a des pour lesquelles la connexion est lourde.
J’ai essayé l'url directement sur Internet il met longtemps puis le message suivant s'affiche:
Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Ce que je voulais faire et quand la connexion échoue je voudrais récupérer ce message et l'afficher à partir de mon code java.
Merci beaucoup...

Commentaire de sheorogath le 14/04/2007 15:32:30 administrateur CS

ben dans ce cas tu va voir une autre de mes sources permettant de recuperer le contenu d'une page web ... si tu recupere un message d'erreur ou une page 'null' alors tu pourras afficher ce message

Commentaire de polter le 13/03/2008 14:45:04 7/10

Bonjour.

Ce code fonctionne parfaitement sauf avec ce type d'url :

http://localhost:8080/com.instranet.InstraServlet?command=com.instranet.CmdBlobGet&InstranetImage=102&SecMode=1

J'ai bien sûr mis un nom fictif au fichier.

Y a-t-il un moyen pour la faire fonctionner ? Merci

Commentaire de BlackBrain le 27/07/2010 14:55:34 7/10

Salut je suis nouveaux comment on le telecharge ?

Commentaire de Tikaway le 07/10/2010 10:04:25

Bonjour,

Comme Hassenra, j'obtiens systématiquement l'erreur "Fichier non valide.". J'utilise l'url privée de mon calendrier Google du type : http://www.google.com/calendar/ical/blablablabla%40group.calendar.google.com/private-bubullebubulle/basic.ics

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

applet, création et téléchargement de fichier sur le serveur d'origine [ par darfeuille ] Bonjour, je vous explique mon probl&#232;me : j'ai d&#233;velopp&#233; une applet java (s'int&#233;grant dans un intranet)permettant d'explorer des téléchargement d'un fichier [ par onetouch ] Je veux télécharger un fichier audio existant dans une base de donnée mysql avec jsp à partir d'un url, lorsque je clique sur l'url, il va me demender téléchargement du fichier [ par mariem1988 ] Salem, j'ai un petit problème je veux lancer le téléchargement d'un fichier via une connexion sécurisée "HTTPS" c'est à dire mon url est "https://... telechargement de fichier par une URL (sous android) [ par darknonos ] Bonjour, j'ai mis sur un serveur des fichiers dsiponible qui devront etre copier sur la carte SD du telephone grace a une application android. Seulem Téléchargement d'une fichier a partir l'internet [ par CAMMIR ] Bonjour, Je Cherche S.V.P programme en java qui permet de télécharger une fichier texte a partir d'une site web et gérée ce dernière dans un basse de jeu de dame international [ par darrylsite ] Bonjour, J'ai eu à programmer un jeu de dame international complet :IA+jeu en reseau+minichat- en java utilisant swing avec une configuration serveur Nouveau javafr [ par EBArtSoft ] [^^!1] Bienvenue dans le nouveau [url=http://javafr.com]http://javafr.com[/url] ! Dites nous ce que vous en pensez [^^happy10] [^^!2] Soyez critique Récupérer un fichier grâce File(uri) [ par bibijosh ] Bonjour,Voilà, j'aimerais pouvoir récupérer un fichier situé sur un serveur grâce à son url.Voilà un bout de code que j'utilise:[QUOTE]        url = n telecharger un fichier depuis url : reprise de telechargement ? [ par jmengelle ] Bonjour à tous, voilà, j'ai un peu de temps à perdre et j'essaye de faire un petit utilitaire pour télécharger un fichier depuis une URL. Pas de probl Copie de fichier [ par mypleasure ] Coucou, j'aimerai pouvoir copier un fichier d'un endroit à un autre sur un même ordinateur. J'ai ce petit code qui récupère un fichier depuis une


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales