Jquery基本文件上传
我一直在研究Ryan提出的名为Jquery文件上传的screencast pro。但是每次我输入图像时,它都不会被上传。我不确定我的代码在这里做错了什么。我正在使用谷歌,并试图上传它,但它似乎没有做任何事情 Javascript application.jsJquery基本文件上传,jquery,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,Jquery,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,我一直在研究Ryan提出的名为Jquery文件上传的screencast pro。但是每次我输入图像时,它都不会被上传。我不确定我的代码在这里做错了什么。我正在使用谷歌,并试图上传它,但它似乎没有做任何事情 Javascript application.js //= require jquery //= require jquery_ujs //= require jquery-fileupload/basic //= require jquery-fileupload/vendor/tmpl
//= require jquery
//= require jquery_ujs
//= require jquery-fileupload/basic
//= require jquery-fileupload/vendor/tmpl
//= require_tree .
咖啡
jQuery ->
$('#new_painting').fileupload
观点
_form.html.erb
<%= form_for @painting, :html => {:multipart => true} do |f| %>
<div class="field">
<%= f.hidden_field :galley_id %>
</div>
<div class="field">
<%= f.label :image %><br />
<%= f.file_field :image %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
模型
我的主要问题是,当上传任何图片时,它只是没有一个提交按钮,不知道如何使其工作,我是否错过了一些东西???您可能成功地将文件上传到您的控制器操作中,但除了
@painting = Painting.create(params[:painting])
你需要做更多的事情,比如把上传的文件保存在服务器上的某个地方
def create
filename = params[:painting][:image].original_filename
filetype = params[:painting][:image].content_type
filedata = params[:painting][:image].read
File.open("#{Rails.root.to_s}/images/#{filename}","wb") { |f| f.write(filedata) }
@painting = Painting.create(params[:painting])
end
这将提取上传的图像并将其写入服务器。如果您想在数据库中记录MIME类型,Content\u type也很方便。因此,通过在S3Uploader>initialize方法的过期时间中添加时区(即utc)来解决这个问题 有关更多信息,请参阅:
def index
@paintings = Painting.all
end
def show
@painting = Painting.find(params[:id])
end
def new
@painting = Painting.new
end
def create
@painting = Painting.create(params[:painting])
end
def edit
@painting = Painting.find(params[:id])
end
def update
@painting = Painting.find(params[:id])
if @painting.update_attributes(params[:painting])
redirect_to paintings_url, notice: "Painting was successfully updated."
else
render :edit
end
end
def destroy
@painting = Painting.find(params[:id])
@painting.destroy
redirect_to paintings_url, notice: "Painting was successfully destroyed."
end
attr_accessible :image
mount_uploader :image, ImageUploader
@painting = Painting.create(params[:painting])
def create
filename = params[:painting][:image].original_filename
filetype = params[:painting][:image].content_type
filedata = params[:painting][:image].read
File.open("#{Rails.root.to_s}/images/#{filename}","wb") { |f| f.write(filedata) }
@painting = Painting.create(params[:painting])
end