Sha256: 7270c3fe8594c04422c224cce1695d3af320898bc944becd10e8284c5b3ea1fb

Contents?: true

Size: 1.07 KB

Versions: 5

Compression:

Stored size: 1.07 KB

Contents

module Blogo::Admin
  # Handles image upload with CKeditor.
  class ImagesController < BaseController
    skip_before_filter :verify_authenticity_token

    layout false

    # Directory in public with blog images
    IMAGE_DIRECTORY = 'system/blog/images'

    # POST /admin/images
    #
    # Upload image.
    def create
      upload_io = params[:upload]

      image_name = upload_io.original_filename
      file_path = Rails.root.join('public', image_directory, image_name)

      if File.exists?(file_path)
        @error = "Image with name \"#{image_name}\" already exists"
      else
        dir = File.dirname(file_path)
        FileUtils.mkdir_p(dir) unless File.exists?(dir)
        File.binwrite(file_path, upload_io.read)
      end

      @image_path = File.join('/', image_directory, image_name)
    end


    private

    # Image directory with year/month subdirectories.
    #
    # @return [String]
    def image_directory
      @image_directory ||= begin
        date_dir = Time.now.strftime('%Y/%m')
        File.join(IMAGE_DIRECTORY, date_dir)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
blogo-0.0.8 app/controllers/blogo/admin/images_controller.rb
blogo-0.0.7 app/controllers/blogo/admin/images_controller.rb
blogo-0.0.6 app/controllers/blogo/admin/images_controller.rb
blogo-0.0.5 app/controllers/blogo/admin/images_controller.rb
blogo-0.0.4 app/controllers/blogo/admin/images_controller.rb