美文网首页
carrierwave上传附件及下载

carrierwave上传附件及下载

作者: 程序萌 | 来源:发表于2017-12-07 18:00 被阅读0次

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

相关文章

网友评论

      本文标题:carrierwave上传附件及下载

      本文链接:https://www.haomeiwen.com/subject/gdcjixtx.html