Enregistrer fichier depuis son URL

Résolu
zwyx Messages postés 146 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 21 mars 2016 - 18 févr. 2008 à 12:16
cs_arghhh Messages postés 1 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 22 septembre 2008 - 22 sept. 2008 à 14:43
Bonjour à tous,

Je souhaite réaliser une petite interface qui enregistre toutes les images jpeg d'un site, mais ça pourrait très bien être un autre type de fichiers que des images. Je m'explique plus en détail.

L'utilisateur inscrit dans plusieurs TEdit, de manière à ce que l'on ait:
edtSource1.Text := 'http://www.sitequelconque.com/images/image_';
edtSourceFirst.Text := '1';
edtSourceLast.Text := '250';
edtSource2.Text := '.jpg';

Le programme se charge ensuite d'enregistrer les 250 images dans un dossier choisi à l'aide d'un ShellTreeView (ce n'est pas cette partie qui pose problème):
  http.//www.sitequelconque.com/images/image_1.jpg
  http.//www.sitequelconque.com/images/image_2.jpg
  ...
  http.//www.sitequelconque.com/images/image_250.jpg

Dans un premier temps, je pensais pouvoir faire abstraction du format des fichiers à enregistrer, car je pensais pouvoir faire qu'une simple copie octet par octet. Mais ne sachant pas trop comment m'y prendre, j'ai essayé d'ouvrir une image à partir de son URL, dans un TMemoryStream. Je bloque déjà sur cette simple opération en ayant écrit les quelques lignes suivantes.

procedure TForm1.btnSaveClick(Sender: TObject);
var
  memviv: TMemoryStream;
  adr: ShortString;
  ch: ShortString;
begin
  adr := 'http://www.chu-nantes.fr/02-SiteWeb/02-Index/LogoCHU(627_27)122x82.jpg';
  ch := 'C:\Documents and Settings\MaSession\Bureau\';
  memviv.Create;
  memviv.LoadFromFile(adr); // provoque l'erreur à l'exécution: "impossible d'ouvrir le fichier ..."
  memviv.SaveToFile(ch);
end;

J'attends votre aide, bonne semaine.

9 réponses

fbalien Messages postés 251 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 11 novembre 2016
18 févr. 2008 à 14:01
Bonjour

  URLDownloadToFile(nil,pchar(strAdresseUrl ), pchar(strDestination ) ,0, nil)

c'est la fonction que j'utilises pour la recup des fichiers sur Iternet
il doit peut être falloir ajouter l'unité URLMon dans la clause uses à voir

CDT François
3
Rejoignez-nous