Skip to content

Instantly share code, notes, and snippets.

@kracekumar
Created April 13, 2011 22:19
Show Gist options
  • Save kracekumar/918554 to your computer and use it in GitHub Desktop.
Save kracekumar/918554 to your computer and use it in GitHub Desktop.
#controller
class UploadMaterialController < ApplicationController
def index
end
def upload
@user = current_user
@upload=UploadMaterial.new(params[:upload_material])
@upload[:author]=current_user
name=@upload[:name].original_filename
directory="public/uploads/materials"
if UploadMaterial.find_by_name(name) == nil
path=File.join(directory,name)
File.open(path,"wb"){ |f| f.write(params[:upload_material][:name].read) }
@upload[:size]=(File.size("#{path}"))/1024.0
if @upload.save
flash[:notice]="File saved"
else
flash[:notice]="#{@upload[:size]},#{params[:upload_material]}"
end
else
flash[:notice]="File name exists, please upload the file with other name"
end
end
end
#model
class UploadMaterial < ActiveRecord::Base
belongs_to:author,:class_name=>'User'
# validates_presence_of:subject,:name,:description,:size
end
#view
<div id="content-header">
<img src="/images/admission/admission_page_logo.jpg" />
<h1>Admission</h1>
<h3>Step 1 - Student details</h3>
<div id="app-back-button">
<%= link_to_function image_tag("/images/buttons/back.png",:border => 0), "history.back()" %>
</div>
</div>
<div id="page-yield">
<% unless flash[:notice].nil? %>
<p class="flash-msg"> <%= flash[:notice] %> </p>
<% end %>
<% form_for(@upload, :url => {:action=> 'upload'}, :html=> {:multipart=>true}) do |s| %>
<%= error_messages_for 'upload_material', :header_message => nil %>
<div id="admission1_form">
<div id="necessary-field-notification"> Fields marked with <span class="necessary-field">*</span> must be filled.</div>
<span class="span-sub-heading">Personal Details</span>
<hr class="sub-heading"></hr>
<hr class="label-underline"></hr>
<div class="label-field-pair">
<label for="student_grade">Description:<span class="necessary-field">*</span></label>
<div class="text-input-bg"><%= s.text_field :description %></div>
</div>
<hr class="label-underline"></hr>
<div id="admission1_form_vertical_block_left">
<div class="label-field-pair">
<% if @user.admin? %>
<label for="student_grade">Course & Batch</label>
<div class="text-input-bg"><%= select :subject, :subject_id, Subject.all.collect {|b| [b.name, b.id]} %></div>
<% end %>
</div>
<hr class="label-underline"></hr>
<div id="admission1_form_vertical_block_right">
<script>
(function($){$.fn.filestyle=function(options){var settings={width:250};if(options){$.extend(settings,options);};return this.each(function(){var self=this;var wrapper=$("<div>").css({"width":settings.imagewidth+"px","height":settings.imageheight+"px","background":"url("+settings.image+") 0 0 no-repeat","background-position":"right","display":"inline","position":"absolute","overflow":"hidden"});var filename=$('<input class="file">').addClass($(self).attr("class")).css({"display":"inline","width":settings.width+"px"});$(self).before(filename);$(self).wrap(wrapper);$(self).css({"position":"relative","height":settings.imageheight+"px","width":settings.width+"px","display":"inline","cursor":"pointer","opacity":"0.0"});if($.browser.mozilla){if(/Win/.test(navigator.platform)){$(self).css("margin-left","-142px");}else{$(self).css("margin-left","-168px");};}else{$(self).css("margin-left",settings.imagewidth-settings.width+"px");};$(self).bind("change",function(){filename.val($(self).val());});});};})(jQuery);
</script>
<span class="span-sub-heading">Upload Material</span>
<hr class="sub-heading"></hr>
<div class="label-field-pair">
<label for="student_image_file">Upload ( 10MB max)</label>
<div class="text-input-bg"><%= s.file_field :name %></div>
</div>
</div>
<div class="extender">
</div>
<%= submit_tag "", :value => "► Save & Proceed", :class => "submit_button" %>
<% end %>
</div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment