Ruby Carriewave 上传图片

liker · 2013年10月31日 · 最后由 liker 回复于 2013年11月29日 · 2962 次阅读

图片保存的时候,怎样修改图片的名字进行保存。

重写 Uploader 的 filename

def filename
 "#{secure_token}.#{file.extension}" if original_filename.present?
end

uploader 文件

def store_dir
    #"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
    "#{Rails.root}/../dfs/"
end
def extension_white_list
     %w(jpg jpeg gif png) 
end
def filename
    if original_filename
      uuid = UUIDTools::UUID.random_create.to_s
      uuid_p = uuid.gsub('-','')
      @name = file.extension+"/"+uuid_p[1,2]+"/"+uuid_p[4,2]+"/"+uuid_p[7,2]+"/"+uuid_p[10,22]+"."+file.extension
      # current_path 是 Carrierwave 上传过程临时创建的一个文件,有时间标记,所以它将是唯一的
      "#{@name}"
    end
  end
需要 登录 后方可回复, 如果你还没有账号请 注册新账号