Skip to content
This repository

Rails plugin for easy embedding swf upload into your project

branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

README.rdoc

EasySwfUpload

This plugin will help you to embed swf upload into your project Installation:

script/plugin install git://github.com/over/easy_swf_upload.git
#script/generate easy_swf_upload is called for you automatically

Example

In your application.html.erb include javascripts:

<%= javascript_include_tag :defaults, :swf_upload %>

Important: Plugin doesn't works without prototype javascript library

Then, use this helper to embed swf upload to your application:

<%= swf_upload_area "Upload images", :url => upload_image_block_path,
        :filetypes => "*.jpg; *.gif",
        :button_style => "font-family: Arial, sans-serif; font-size: 14pt; font-weight:bold;" %>

Advanced options: single_file: true – allow upload only 1 file file_size_limit: “500 MB” – set maximum uploadable file size to 500 MB, default - 40 MB

In your controller:

class PagesController < ApplicationController

# If your rails version < 2.3.0, go this way

  session :cookie_only => false, :only => :upload_image_block # this is very important, don't forget to set it to false

  def upload_image_block
    @image_block = ImageBlock.new(:file => swf_upload_data) # here you can use your favourite plugin to work with attachments

    # use RJS here
    render :update do |page|
      page['blocks'].insert("<div><img src="http://domain.com" /></div>")
    end
  end
end

Also, you need to customize uploading area, i used this css:

<style type="text/css">
  ul.uploadContainer { padding: 10px; }
  ul.uploadContainer li { font-size: 14px; position: relative; height: 22px; }
  ul.uploadContainer li h6 { font-size: 14px; }
  ul.uploadContainer li div.bar { width: 100%; height: 4px; }
  ul.uploadContainer li div.progress { position: absolute; top: 17px; height: 4px; background: #63b534; }
</style>

Or if you use LESS or css_dryer:

ul.uploadContainer {
  padding: 10px;

  li {
    font-size: 14px; position: relative; height: 22px;

    h6 { font-size: 14px; }
    div.bar { width: 100%; height: 4px; }
    div.progress { position: absolute; top: 17px; height: 4px; background: #63b534; }
  }
}

Uploading file template:

<li id="#{id}"><h6>#{title}</h6><div class="bar"><div class="progress" style="width:0"></div></div></li>

Thanks.

Contributors

Jason Murad, Joris Trooster, Ivan Kuchin, Igor Gladkoborodov

Copyright © 2008—2010 Mikhail Tabunov, released under the MIT license

Something went wrong with that request. Please try again.