Как получить размер загруженного файла изображения?

#ruby-on-rails #ruby-on-rails-4 #carrierwave #rmagick

#ruby-on-rails #ruby-on-rails-4 #carrierwave #rmagick

Вопрос:

В этом проблема. Я использую Carrierwave для загрузки своих изображений, и теперь я пытаюсь получить размер файла в КБ для каждой версии моего загруженного изображения. Я пробовал это, но это дает мне неправильный размер файла:

 if @file
  img = ::Magick::Image::read(@file.file).first
  size = img.to_blob.size
end
 

Если я удалю to_blob и попробую только с img.size помощью, я получу сообщение об ошибке, которое size не является определенным методом. Есть ли способ получить размер изображения в Carrierwave uploader при загрузке файла? Спасибо всем 🙂

Комментарии:

1.попробуйте img.file.size размер загруженного файла

2. @anonymousxxx, я получаю эту ошибку: undefined method 'file' for #<Magick:: .....

Ответ №1:

В вики Carrierwave есть рецепт, как это реализовать: https://github.com/carrierwaveuploader/carrierwave/wiki/How-to:-Store-the-uploaded-file-size-and-content-type

Комментарии:

1. Спасибо. Это работает для исходного изображения, но как получить доступ к другим размерам версий изображений?