Downloading Image

Hello again

As an extension on my previous image problem I can’t even successfully
download images from a URL location. I though tthe following simple GET
request along with writing the result to a file would work but it
mangles
the image and makes it unreadable.

Net::HTTP.start(“www.example.com”) do |http|
resp = http.get("/images/logo.gif")
outfile = open(“C:/logo.gif”, “w”)
outfile.write(resp.body)
outfile.close
end

Have I done something wrong here? Can anyone see what I’m doing wrong?

Sorry for being a pain but I’ve looked in the mailing list and various
source files but none seem to be shedding any light so I’d be very
grateful
for your input.

All the best.

Doug

On Jun 17, 2006, at 17:27, Doug B. wrote:

resp = http.get("/images/logo.gif")
outfile = open(“C:/logo.gif”, “w”)
outfile.write(resp.body)
outfile.close
end

Have I done something wrong here? Can anyone see what I’m doing
wrong?

On Windows you need to write certain files in ‘binary’ mode. The
appropriate mode strings are documented in the IO class:

http://www.ruby-doc.org/core/classes/IO.html

Also, the common idiom for writing is generally like this:

open(“somefile.etc”, ‘wb’) { |file|
file.write(…)
}

This is done in order to ensure that if there’s an exception after
you open the file (ferinstance, writing when the disk is full, or in
a place you don’t have write permissions), that the file is still
closed. You could do the exception handling yourself, of course, but
this is a convenient concise way of doing things.

Hope that helps,
matthew smillie.

On Jun 17, 2006, at 12:27 PM, Doug B. wrote:

resp = http.get("/images/logo.gif")
outfile = open(“C:/logo.gif”, “w”)
outfile.write(resp.body)
outfile.close
end

Have I done something wrong here? Can anyone see what I’m doing
wrong?

Are you on Windows? Try
outfile = open(“C:/logo.gif”, “wb”)

You need to open the file in `binary’ mode to make it not
automatically translate line endings.

You’re all so patient and helpful.

I can’t thank you enough.

Have a great weekend.

Doug

On 6/17/06, Doug B. [email protected] wrote:

outfile.write(resp.body)
outfile.close
end

Have I done something wrong here? Can anyone see what I’m doing wrong?

As you’re running on Windows, you need to open the file in binary
mode, ie. open(“C:/logo.gif”, “wb”).

Regards,
Sean

Doug B. wrote:

Hello again

As an extension on my previous image problem I can’t even successfully
download images from a URL location. I though tthe following simple GET
request along with writing the result to a file would work but it
mangles
the image and makes it unreadable.

Net::HTTP.start(“www.example.com”) do |http|
resp = http.get("/images/logo.gif")
outfile = open(“C:/logo.gif”, “w”)
outfile.write(resp.body)
outfile.close
end

Have I done something wrong here? Can anyone see what I’m doing wrong?

Sorry for being a pain but I’ve looked in the mailing list and various
source files but none seem to be shedding any light so I’d be very
grateful
for your input.

All the best.

Doug
Hi All,

Get all images from given URL

Desktop Application from jazzez

Kindly go through below link and download the EXE file.

http://www.box.net/shared/m5vxqpr3r1

Install in Windows machine and enjoy with impressed images

Regards,
P.Raveendran
http://raveendran.wordpress.com

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs