Отсутствует расширение при сохранении изображения на скрепке - PullRequest
0 голосов
/ 28 мая 2011
 image = PortfolioFileItem.find(107)  
 img_source = "http://s3.amazonaws.com/test/portfolio_file_items_final/original/1.jpg"
 image.picture_from_url(img_source)
 image.save(false)

изображение сохранено, но отсутствует расширение изображения. сохранено это имя образца изображения: открытой uri20110528-6779-fpiust-0.

Пожалуйста, помогите мне решить проблему. спасибо

Ответы [ 2 ]

5 голосов
/ 28 мая 2011

Чтобы добавить расширение к скрепке, добавьте эту строку после has_attached_file в качестве опции

:path => ":rails_root/public/:attachment/:id/:style/:basename.:extension"

Вы можете настроить этот путь в соответствии со своими потребностями, однако у вас должен быть .:extension в конце, расширение: является одним из многих значений, которые можно использовать для интерполяции.

См. сообщение в блоге для получения дополнительной информации.

0 голосов
/ 11 июля 2016

Если исходный файл не имеет расширения изначально, вы можете определить расширение и добавить его перед сохранением

  def besfore_save
    tempfile = data.queued_for_write[:original]
    unless tempfile.nil?
      extension = File.extname(tempfile.original_filename)
      if !extension || extension == ''
        mime = tempfile.content_type
        ext = Rack::Mime::MIME_TYPES.invert[mime]
        self.data.instance_write :file_name, "#{tempfile.original_filename}#{ext}"
      end
    end

    true
  end
...