Telecharger un fichier a partir d'une url

Contenu du snippet

Cette classe permet de récupéré un fichier sur un site internet ou sur un serveur interne. ca peut être utile quand on a besoin d'ouvrir un document à l'utilisateur qui se trouve sur le web par exemple.

Elle s'utilise en passant en paramètre l'url du fichier à télécharger. Le fichier récupéré est alors stocké en local. Si on veut le stocker ailleurs on peut alors appeler la méthode surchargé qui prend un paramètre en plus qui est le fichier de destination.

Voila j'espère que ce code vous sera utile.

Source / Exemple :


package com.genoyer.chrisDLPkg.utils;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class UrlHelper {

	public static void downloadFile(String adresse) {

		downloadFile(adresse, null);
	}

	public static void downloadFile(String adresse, File dest) {
		BufferedReader reader = null;
		FileOutputStream fos = null;
		InputStream in = null;
		try {

			// création de la connection
			URL url = new URL(adresse);
			URLConnection conn = url.openConnection();
			System.out.println(adresse);

			String FileType = conn.getContentType();
			System.out.println("FileType : " + FileType);

			int FileLenght = conn.getContentLength();
			if (FileLenght == -1) {
				throw new IOException("Fichier non valide.");
			}

			// lecture de la réponse
			in = conn.getInputStream();
			reader = new BufferedReader(new InputStreamReader(in));
			if (dest == null) {
				String FileName = url.getFile();
				FileName = FileName.substring(FileName.lastIndexOf('/') + 1);
				dest = new File(FileName);
			}
			fos = new FileOutputStream(dest);
			byte[] buff = new byte[1024];
			int l = in.read(buff);
			while (l > 0) {
				fos.write(buff, 0, l);
				l = in.read(buff);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				fos.flush();
				fos.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
			try {
				reader.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.