我是铁杆新手。我想知道rails中的文件上传过程。谁能帮帮我吗... 谢谢, Althaf
答案 0 :(得分:6)
通常gems / plugins用于处理文件上传。我最喜欢的一个,也许是无处不在的Paperclip。
在您看来,您必须告诉rails帮助者您正在上传这样的文件:
<%= form_for @model, :html => { :multipart => true } do |form| %>
答案 1 :(得分:1)
以下是一种如何在不使用任何gem的情况下上传文件的方法,只使用rails,
解决方案:=&gt;
def create
@photo = Photo.new(photo_params)
uploaded_io = params[:photo][:photo]
File.open(Rails.root.join('public', 'uploads', uploaded_io.original_filename), 'wb') do |file|
file.write(uploaded_io.read)
end
if @photo.save
flash[:success] = "The photo was added!"
redirect_to root_path
else
render 'new'
end
end
def upload
uploaded_io = params[:person][:picture]
File.open(Rails.root.join('public', 'uploads', uploaded_io.original_filename), 'wb') do |file|
file.write(uploaded_io.read)
end
end
视图中的form.html.erb应包含此内容,非常简单,
<%= form_for @photo do |f| %>
<%= f.file_field :photo %>
<div class="actions">
<%= f.submit "Upload" %>
</div>
<% end %>
最后模型应该有,
has_attached_file :image
。############################################## #### 您现在可以享受加载任何文件。
谢谢。玩火车吧。
Use <video_tag> for viewing video files.
Use <audio_tag> for viewing audio files.
Use <object>"link"</object> for viewing PDF or DOC files.