Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # encoding: utf-8
- class ImageUploader < CarrierWave::Uploader::Base
- # Include RMagick or ImageScience support:
- #include CarrierWave::RMagick
- # include CarrierWave::ImageScience
- # Choose what kind of storage to use for this uploader:
- storage :file
- # storage :s3
- # 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}"
- #"uploads/#{model.class.to_s.underscore}/#{model.company_id}"
- "uploads/#{model.company_id}"
- end
- before_save :convert_to_mp3
- def reconvert_to_mp3
- wavfile = Tempfile.new(".wav")
- wavfile.binmode
- open(wav.url) do |f|
- wavfile << f.read
- end
- wavfile.close
- convert_tempfile(wavfile)
- end
- def convert_to_mp3
- tempfile = wav.queued_for_write[:original]
- unless tempfile.nil?
- convert_tempfile(tempfile)
- end
- end
- def convert_tempfile(tempfile)
- dst = Tempfile.new(".mp3")
- cmd_args = [File.expand_path(tempfile.path), File.expand_path(dst.path)]
- system("lame", *cmd_args)
- dst.binmode
- io = StringIO.new(dst.read)
- dst.close
- io.original_filename = "sound.mp3"
- io.content_type = "audio/mpeg"
- self.mp3 = io
- end
- # Provide a default URL as a default if there hasn't been a file uploaded:
- # def default_url
- # "/images/fallback/" + [version_name, "default.png"].compact.join('_')
- # end
- # Process files as they are uploaded:
- # process :scale => [200, 300]
- #
- # def scale(width, height)
- # # do something
- # end
- # Create different versions of your uploaded files:
- #version :thumb do
- #process :resize_to_limit => [200, 200]
- #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:
- # def filename
- # "something.jpg" if original_filename
- # end
- end
Add Comment
Please, Sign In to add comment