# coding: utf-8
require"digest/md5"require
'carrierwave/processing/mini_magick'
class ImageUploader < CarrierWave::Uploader::Base
includeCarrierWave::MiniMagickstorage:grid_fs
defstore_dir
#这里可以修改存放上传图片了的路径
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}/"
end
# 调整临时文件的存放路径,默认是再 public 下面
def cache_dir
"#{Rails.root}/tmp/uploads"
end
# TODO: 此处要想办法,开启了 open-uri 下载的因为文件名的问题无法通过验证# Allow image file extensions
def extension_white_list
%w(jpg jpeg gif png)
end
# Override the filename of the uploaded files:
def filename
if original_filename
# current_path 是 Carrierwave 上传过程临时创建的一个文件,有时间标记,所以它将是唯一的
@name||=Digest::MD5.hexdigest(File.dirname(current_path))
"#{@name}.#{file.extension}"
end
end
#或者也可以这样修改文件名:
def filename
if @filename
Digest::SHA1.hexdigest(original_filename) + File.extname(@filename)
end
end
end