Forum: Ruby on Rails Download an Image using Net::HTTP

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Joerg D. (Guest)
on 2006-01-22 13:57
Hi,

I need to download an image, and I've mucked about with Net::HTTP

resp = Net::HTTP.get_response('www.mydomain.com', '/test.jpg')
f = File.new("test.jpg","w")
f.write(response.body)

And various other combinations using HTTP.get etc. Anyway, I get an
image, but it looks very psychedelic. This is obviously not the correct
way. I also don't want to use Imagemagick for this.

Has anybody done this before?

Joerg
Anthony Elizondo (Guest)
on 2006-01-22 18:12
(Received via mailing list)
On 1/22/06, Joerg D. <removed_email_address@domain.invalid> wrote:
> way. I also don't want to use Imagemagick for this.
>
> Has anybody done this before?

Are you on Windows? If so, you need to use:

f = File.new("test.jpg","wb")

See http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/...
for a discussion of why, and
http://www.ruby-doc.org/core/classes/IO.html for the documentation of
this mode.

> Joerg

Anthony
Ezra Z. (Guest)
on 2006-01-22 23:30
(Received via mailing list)
On Jan 22, 2006, at 8:06 AM, Anthony Elizondo wrote:

>> image, but it looks very psychedelic. This is obviously not the
> for a discussion of why, and
> http://www.ruby-doc.org/core/classes/IO.html for the documentation of
> this mode.
>
>> Joerg
>
> Anthony



Also you are trying to write response.body into the file when you
should be using resp.body because resp is the var you used to set up
the Net::HTTP object

Cheers-
-Ezra Z.
WebMaster
Yakima Herald-Republic Newspaper
removed_email_address@domain.invalid
509-577-7732
Joerg D. (Guest)
on 2006-01-26 13:25
Ah - of course. Thank you.

> Are you on Windows? If so, you need to use:
>
> f = File.new("test.jpg","wb")
>
This topic is locked and can not be replied to.