Today, I was looking for a simple multiple file upload solution for Ruby on Rails 3.2 with paperclip 3.0.4 and found several jQuery and Flash solutions, like Uploadify or jQuery-File-Upload, buy they seemed to be too heavy and complicated for my case. I didn’t need asynchronous upload and other features they provide, I only needed really simple (ideally pure html) solution to save several images for my
Item model with regular form submit, but with possibility to select all images at once (in one input field).
Luckily, there is html5 attribute
multiple for input
type='file', which is already supported by modern browsers (Opera, Firefox, Chrome, Safari), and that’s pretty ok for me. In the following code snippet, I’ll show, how I used this attribute and how I marked up my rails form make it work with paperclip.
Note: As soon as IE doesn’t support
multiple attribute, the example below will allow to upload only one file for IE users.
So basically I have
Item model, which has many
AttachedAsset model is used to store image with paperclip. All code in models and controller is very simple and found in paperclip’s HOWTOs. The only non-obvious part is
file_field_tag in the
new.html.haml template – it has tricky
name (to be handled as array of
multiple attributes is set to