NAME
upload_cache.rb
DESCRIPTION
a small utility library to facility caching http file uploads between
form validation failures. designed for rails, but usable anywhere.
USAGE
in the controller
def upload
@upload_cache = UploadCache.for(params, :upload)
@record = Model.new(params)
if request.get?
render and return
end
if request.post?
@record.save!
@upload_cache.clear!
end
end
in the view
<input type='file' name='upload />
<%= @upload_cache.hidden %>
<!-- optionally, you can show any uploaded upload -->
<% if url = @upload_cache.url %>
you already uploaded: <img src='<%= raw url %>' />
<% end %>
in a rake task
UploadCache.clear! ### nuke old files once per day