最近因为工作需要,遇到了图片上传问题,经过看了 paperClip 文档和 CarrierWave 文档,感觉 Carrierwave 更适合于新手
rails generate uploader image
4,. 使用工具到 app/uploaders/image_uploader.rbclass Teacher < ActiveRecord::Base
mount_uploader :photo, ImageUploader
end
这段代码是用来保存上传文件的本地地址、这是在 app/uploaders/image_uploader.rb
def store_dir
"#{model.class.to_s.underscore}s/#{model.number}"
end
#{model.class.to_s.underscore}s 这个会生成 teachers
#{model.number} 这段代码会根据填入的数据生成相应的字段
如:
public/teachers/xxx0001
这是在 App/uploaders/image_uploader.rb
def extension_white_list
%w(jpg jpeg gif png)
end
这段代码是用来规定上传文件的各式,图片 记得在文件顶部加入 require 'digest' 这是在 App/uploaders/image_uploader.rb
def filename
if original_filename
@name ||= Digest::MD5.hexdigest(current_path)
"#{@name}.#{file.extension}"
end
end
这段代码会将上传的文件重命名,通过 Digest,MD5 转换成 16 为随机字符 如: a39bf8eafbe1d92422ce14cf78766e45.jpg
下面的是一个大神的代码,希望对大家有帮助,这是他的连接: 这里:http://huacnlee.com/blog/carrierwave-upload-store-file-name-config/