gemfile中添加
gem 'carrierwave', '~> 1.0'
bundle install
生成uploader
rails generate uploader Image
生成文件:app/uploaders/avatar_uploader.rb
用脚手架创建一个模型(2选1)记得rake db:migrate
rails g scaffold image file:string
rails g scaffold admin/image file:string
#带命名空间的
在image的model文件中添加
class Ancient::Image < ApplicationRecord
mount_uploader :file, ImageUploader
end
在imag的new页面添加
<%= form.file_field :file %>
#上传图片
在imag的show页面添加(取图片)
<%= image_tag(@ancient_image.file.url, width: '80px', height: '50px') %>
#可设置取的图片大小
下载已上传的附件
def down
article_file = @article.file #实例的附件
file_name = _file_name_for_agent(@article.file_name)#实例的名称
send_file "#{article_file.file.file}", :filename => file_name
end
# 为ie附件下载获取正确文件名(写在ApplicationController.rb中)
def _file_name_for_agent(name)
user_agent = request.user_agent.downcase
file_name = user_agent.include?("msie") ? CGI::escape(name) : name
end
网友评论