Bonjour,
Je cherche une manière de télécharger un fichier à partir d'une URL.
J'ai testé les 2 solutions ci-dessous : fs := FileStream newFileNamed: 'mobile_icon3.gif'. fs nextPutAll: ('http://localhost/resources/mobile_icon3.gif' asUrl retrieveContents) content. fs close. (aString asUrl retrieveContents) retourne un MIMEDocument.
fs := FileStream newFileNamed: 'mobile_icon3.gif'. fs nextPutAll: (HTTPClient httpGet: ' http://localhost/resources/mobile_icon3.gif'). fs close HTTPClient>>httpGet: anUrl retourne un RWBinaryOrTextStream.
J'arrive bien à créer un fichier mais quand je l'ouvre via Preview ou Gimp son type n'est pas reconnu.
Merci d'avance
Gaetan Le Brun a écrit :
Bonjour,
Je cherche une manière de télécharger un fichier à partir d'une URL.
Salut,
j'ai essayé ça et ça a marché:
|fs| fs := FileStream newFileNamed: 'google.gif'. fs binary. fs nextPutAll: (HTTPClient httpGet: 'www.google.fr/intl/fr_fr/images/logo.gif') contents. fs close.
Plusieurs points:
- il faut mettre le flux en binaire pour éviter les conversions inadéquates
- il faut ajouter #contents après ce que retourne HTTPClient>>httpGet: pour convertir le flux en une collection de caractères qui va ensuite être écrite.
J'espère que ca ira.
Bye
Merci, c'est ce qu'il me fallait.
J'avais trouvé entre temps une autre manière de faire via la classe HTTPSocket :
GIFReadWriter putForm: (HTTPSocket httpGif: ' www.google.fr/intl/fr_fr/images/logo.gif') onFileNamed: 'google.gif'
Mais ce n'est pas assez générique, je préfère ta solution :)
On 9/22/06, Damien Cassou damien.cassou@laposte.net wrote:
Gaetan Le Brun a écrit :
Bonjour,
Je cherche une manière de télécharger un fichier à partir d'une URL.
Salut,
j'ai essayé ça et ça a marché:
|fs| fs := FileStream newFileNamed: 'google.gif'. fs binary. fs nextPutAll: (HTTPClient httpGet: 'www.google.fr/intl/fr_fr/images/logo.gif') contents. fs close.
Plusieurs points:
- il faut mettre le flux en binaire pour éviter les conversions
inadéquates
- il faut ajouter #contents après ce que retourne HTTPClient>>httpGet:
pour convertir le flux en une collection de caractères qui va ensuite être écrite.
J'espère que ca ira.
Bye
-- Damien Cassou
Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
A mettre dans la FAQ ?
Hilaire
Gaetan Le Brun a écrit :
Merci, c'est ce qu'il me fallait.
J'avais trouvé entre temps une autre manière de faire via la classe HTTPSocket :
GIFReadWriter putForm: (HTTPSocket httpGif: ' www.google.fr/intl/fr_fr/images/logo.gif' http://www.google.fr/intl/fr_fr/images/logo.gif') onFileNamed: 'google.gif'
Mais ce n'est pas assez générique, je préfère ta solution :)
On 9/22/06, * Damien Cassou* <damien.cassou@laposte.net mailto:damien.cassou@laposte.net> wrote:
Gaetan Le Brun a écrit : > Bonjour, > > Je cherche une manière de télécharger un fichier à partir d'une URL. Salut, j'ai essayé ça et ça a marché: |fs| fs := FileStream newFileNamed: ' google.gif'. fs binary. fs nextPutAll: (HTTPClient httpGet: 'www.google.fr/intl/fr_fr/images/logo.gif' <http://www.google.fr/intl/fr_fr/images/logo.gif'>) contents. fs close. Plusieurs points: - il faut mettre le flux en binaire pour éviter les conversions inadéquates - il faut ajouter #contents après ce que retourne HTTPClient>>httpGet: pour convertir le flux en une collection de caractères qui va ensuite être écrite. J'espère que ca ira. Bye -- Damien Cassou _______________________________________________ Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org <mailto:Squeak-fr@lists.squeakfoundation.org> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
--
Gaëtan Le Brun 4 avenue Pierre Donzelot 35000 Rennes
Email : gaetan.lebrun@gmail.com mailto:gaetan.lebrun@gmail.com Cell : +33 685 226294
Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
squeak-fr@lists.squeakfoundation.org