carrierwave实现图片上传
来源:互联网 发布:淘宝刷好评多少钱一单 编辑:程序博客网 时间:2024/06/06 13:25
1.添加gem
gem 'carrierwave', '0.6.2'gem 'mini_magick' #不使用rmagick,占内存
2.bundle install
3.为users表添加一个avatar字段,也可以为其他名称,注意相应的代码修改
rails g migration add_avatar_to_users avatar:stringrake db:migrate
4.生成Avatar,跟你添加的字段相同
rails generate uploader Avatar #将会生成文件app/uploaders/avatar_uploader.rb
5.为user的model user.rb添加如下代码,使表之间关联
mount_uploader :avatar, AvatarUploader
6.接下来进行修改app/uploaders/avatar_uploader.rb,下面是一个例子
# encoding: utf-8class AvatarUploader < CarrierWave::Uploader::Base include CarrierWave::MiniMagick #使用minimagick处理压缩图片,确保安装magickimage这个东东,ubuntu可以sudo apt-get install magickimage # Choose what kind of storage to use for this uploader: storage :file # storage :fog # Override the directory where uploaded files will be stored. # This is a sensible default for uploaders that are meant to be mounted: def store_dir #定义上传到哪个文件夹下 "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" end def default_url #可以定义默认图片,如过用户没有上传图片,则可以使用默认的图片 "avatar/#{version_name}.png" end#图片的处理,有不同版本大小,网站可以在不同的地方调用不同的图片大小 version :normal do process :resize_to_fill => [48, 48] end version :small do process :resize_to_fill => [16, 16] end version :large do process :resize_to_fill => [64, 64] end version :big do process :resize_to_fill => [120, 120] end # Add a white list of extensions which are allowed to be uploaded. # For images you might use something like this:#指定上传文件的格式 def extension_white_list %w(jpg jpeg gif png) end # Override the filename of the uploaded files: # Avoid using model.id or version_name here, see uploader/store.rb for details. # def filename # "something.jpg" if original_filename # endend
7.如何在表单中上传
<%= form_for(@user) do |f| %> <div class="field"> <%= f.file_field :avatar %> <%= f.hidden_field :avatar_cache %> </div>...<%end%>
8.如何显示图片
<%= image_tag(@user.avatar_url(:large)) if @user.avatar %>#这里的:large就是指定图片的版本为large 64x64大小
详细查看carrierwave的reademe
0 0
- carrierwave实现图片上传
- carrierwave + magickimage实现图片切割上传
- Rails中 使用carrierwave实现图片上传
- rails中使用carrierwave上传图片
- 在Mac下使用gem carrierwave 上传图片出错
- 利用CarrierWave上传文件
- iOS使用Carrierwave进行图片和视频的上传(swift3.0)
- Rails Gem开发(一)——Carrierwave 实现文件上传
- Carrierwave 修改上传文件名为MD5
- 上传图片,实现图片预览
- 上传图片实现图片预览
- 图片上传的实现
- ASP实现图片上传
- ASP实现图片上传
- 实现图片上传预览
- JSP实现图片上传
- Struts实现图片上传
- JSP实现图片上传
- RTImageAssets 自动生成 AppIcon 和 @2x @1x 比例图片
- POJ 3050 Hopscotch(dfs,暴力搜索)
- xmpp/aSmack源码分析(基于android客户端)
- 自定义ImageView处理其长按和点击事件
- 35 岁程序员的独家面试经历
- carrierwave实现图片上传
- Linux 下的Makefile(一)
- UI考试错题集
- JAVA SSL HTTPS 连接详解 生成证书
- 提升“果断力”的六个窍门
- vl_feat库的安装
- 通过Spring Session实现新一代的Session管理
- 阿里云服务器
- 超强、超详细Redis数据库入门教程