Getting file size on upload

I get the file size of images by

imgmb = File.size("#{RAILS_ROOT}/..../#{file}")

But that's when I have the file on the server. Can you test that before
in order to stop the file upload if it's really heavy? How does that
work?

I get the file size of images by

imgmb = File.size("#{RAILS_ROOT}/..../#{file}")

But that's when I have the file on the server. Can you test that
before
in order to stop the file upload if it's really heavy? How does that
work?

It has to be done upstream of rails (apache has a file upload limit
for example).

Fred

How are the files loaded onto the server?

For example, if they are coming in from users as email attachments you
could use attachment_fu to set the maximum size in the model:

class Photo < ActiveRecord::Base
  has_attachment :storage => :file_system,
    .
    .
    :size => 1..5.megabytes
  validates_as_attachment
end

(paperclip probably has similar functionality but I have not personal
experience with it)

Just for clarification, this will not prevent the file being uploaded
into the server's memory but it will prevent it from being saved to
the file system.

Just to clarify further. If the file is large enough, it WON'T be
kept in memory, instead it will be written to a temp file and the
handle for that will be passed in the params. I don't know of any way
inside Rails to stop a file being uploaded, but suspect you could get
the web server to limit how much it would upload for a single request.

Brendon.