Ruby Rails - serving image files

D

deja

I'm pretty new to Ruby and Rails. I am writing a Rails application
that is meant to be run on a local machine. It allows the user to
select a bunch of image (jpg, gif, etc) files from anywhere on their
file system and add them to an album.

The prototype of the is app is going to leave the images where they are
on the disk (and not persist them anywhere else). I want to write a
controller that can take an image name and location on disk as a
parameter and then serve the file to the user via the WEBrick server so
that the image appears properly in the browser.

Is there any sample code anywhere for opening a binary file and serving
it as jpg (or whatever) to the user?

Regards
 
E

Edwin Eedwin

unknown said:
I'm pretty new to Ruby and Rails. I am writing a Rails application
that is meant to be run on a local machine. It allows the user to
select a bunch of image (jpg, gif, etc) files from anywhere on their
file system and add them to an album.

The prototype of the is app is going to leave the images where they are
on the disk (and not persist them anywhere else). I want to write a
controller that can take an image name and location on disk as a
parameter and then serve the file to the user via the WEBrick server so
that the image appears properly in the browser.

Is there any sample code anywhere for opening a binary file and serving
it as jpg (or whatever) to the user?

Regards

I am an experienced programmer but new to Ruby (and Rails), and I had a
similar need to create a Ruby program that would merely serve a jpeg
image. The resulting program is trivial, probably so trivial that I
couldn't find it on the web. The information is in the documentation,
but you really have to connect the dots, not simple for someone new to a
domain. After an embarrassing amount of effort, I came up with the
following program:

#!/usr/bin/env ruby
require 'cgi'

f = File.new("served_image.jaypeg", "r")

cgi = CGI.new

cgi.out( "type" => "image/jpeg",
"expires" => Time.now + 3600 ) { f.read }

(The "expires" item is a purely gratuitious addition.)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top