Uploads - Easy uploads for rails.
- No predefined CSS and templates.
- Support rails CSRF TOKEN.
- No middleware, just your controllers.
- Use as much as possible jQuery buildin functions.
- Works Paperclip and CarrierWave
- Based on file-uploader
Installation
Add it to our Gemfile
gem 'uploads'
In your controller
class UserUploadsController < ApplicationController
# includes Uploads module for #respond_to_upload method
include Uploads
def create
# create you Upload model as usual
@upload = current_user.user_uploads.new
respond_to_upload(request) do |file, response|
# grab uploaded file
@upload.image = file
# try to save it
if response[:success] = @upload.save
# send back upload id and image preview
response[:user_upload_id] = @upload.id
response[:user_upload_preview_url] = @upload.image.url(:avator_editor)
else
# report errors if any
response[:errors] = @upload.errors
end
end
end
end
In your views
#upload-area data-button='#upload-button' \
data-multiple='false' \
data-dropzones='#upload-area'
a#upload-button Choose a photo
In your js
# application.js.coffee
...
# require anjlab/uploads
$('#upload-area').uploader
request:
endpoint: '/user_uploads'
validation:
allowedExtensions: ['png', 'jpg', 'jpeg', 'gif']
callbacks:
onComplete: (id, fileName, response) ->
console.log('onComplete')
onProgress: (id, fileName, loaded, total) ->
console.log('onProgress')
onUpload: (id, fileName) ->
console.log('onUpload')
onError: (id, fileName, message) ->
console.log('onError')
Examples and tutorials
This project rocks and uses MIT-LICENSE.