2023-08-23 09:46PM
参考:https://stackoverflow.com/questions/14174044/uploading-a-file-in-rails
可以选择form_tag
与 multipart: true结合使用
, 或者使用 form_for
。
<%= form_tag({action: :upload}, multipart: true) do %>
<%= file_field_tag 'picture' %>
<% end %>
<%= form_for @person do |f| %>
<%= f.file_field :picture %>
<% end %>
可以在控制器中访问上传的文件,如下所示:
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
eg:我这里使用的是form_tag
与 multipart: true的结合,增加管理员个人档案页面
在app/views/users/edit_profile.html.erb增加下面的内容:
<%= form_tag '/users/save_profile', multipart: true do %>
<%= file_field_tag "avatar_image" %>
<%= submit_tag "提交" %>
<% end %>
然后在app/controllers/users_controller.rb 里面增加下面的内容:
def edit_profile
end
def save_profile
uploaded_io = params[:avatar_image]
File.open(Rails.root.join('public', 'images', uploaded_io.original_filename), 'wb') do |file|
file.write(uploaded_io.read)
end
user = User.find session[:current_user]['id']
user.avatar_path = '/images/' + uploaded_io.original_filename
user.save!
redirect_to '/users/show_profile'
end
登录
请登录后再发表评论。
评论列表:
目前还没有人发表评论