Skip to content

trooster/easy_swf_upload

 
 

Repository files navigation

_This is a modified version of EasySwUpload. I added several things for my own use (like the jsProgressBarHandler 0.3.3 - by Bramus) and fixed some issues that I came across. Please have a look at the original version from ‘over’ github.com/over/easy_swf_upload which may fit your needs better._

Joris.

EasySwfUpload

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

First, install this plugin (my modified fork, or over’s original version):

script/plugin install git://github.com/trooster/easy_swf_upload.git or 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 %>

Or on a specific page (assuming the prototype libraries are loaded in your application template):

<% content_for :javascript do %>

<%= javascript_include_tag :swf_upload %>

<% end %>

The Plugin does not works without the prototype javascript library.

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

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

If you want to allow uploading of only a single file, you can pass :single_file => true option to swf_upload_area helper.

If you want a file size limit use the file_size_limit option, for example :file_size_limit => “2 MB”. The default file size limit = 40 MB.

Another example with a button image, and single file upload:

<%= swf_upload_area :url => upload_image_block_path,
        :filetypes => "*.jpg; *.gif",
        :single_file => true,
        :file_size_limit => "100 MB"
        :button_image_url => "../images/XPButtonUploadText_61x22.png",
        :button_width => 61,
        :button_height => 22 %>

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 :action => "upload_image_block.js.rjs"
    render :update do |page|
      page['blocks'].insert("<div><img src="http://domain.com" /></div>")
    end
  end
end

Also, you need to customize uploading area, for example:

<style>
.uploadContainer {
  margin: 0; padding: 0;
}

.uploadContainer li {
  list-style: none;
  margin: 0; padding: 0; height: 2em;
  padding: 0.4em; border: #ccc; margin-bottom: 1em;
}

.uploadContainer li h6 {
  margin: 0; padding: 0; color: #000;
  font-size: 1.1em;
}
</style>

Uploading file template:

<li id="#{id}"><h6>#{title}</h6><span id="#{id}_progress">[ Loading Progress Bar ]</span></li>

– Copyright © 2008 Mikhail Tabunov, released under the MIT license See commit history on github for changes by others

About

Rails plugins for easy embedding swf upload into your project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 89.3%
  • Ruby 10.7%