【问题标题】:ImageMagick on Rails saying “Image has an extension that does not match its contents”Rails 上的 ImageMagick 说“图像的扩展名与其内容不匹配”
【发布时间】:2014-06-02 14:49:19
【问题描述】:

我最近将我的第一个 Rails 应用程序部署到 Heroku 上,并将其配置为将图像(通过 Paperclip)上传到 AWS S3,但我一直被此错误消息拒绝

"Image has an extension that does not match its contents"

我认为这是我在更改 100% 可运行的开发应用程序后添加的所有内容

models/single.rb

has_attached_file :image, :styles => { 
        :thumb => ["200x200"], 
        :medium => ["600x600>"], 
        :large => ["1200x1200>"] }, 
        :default_url => "/images/:style/missing.png"
    validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/

config/environments/production.rb

config.paperclip_defaults = {
    :storage => :s3,
    :s3_credentials => {
      :bucket => ENV['S3_BUCKET_NAME'],
      :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
      :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
    }
  }

宝石文件

gem 'paperclip'
gem 'aws-sdk'
gem 'rmagick'

我尝试了几张图片,所有这些图片都是我在 Photoshop 中以正确的内容类型和扩展名导出的,所以我认为错误消息不是问题所在。

上周我刚开始使用 Ruby/Rails/AWS/Heroku,很抱歉我对这些主题缺乏了解

【问题讨论】:

  • 啊,是的!降级工作!现在从 AWS 收到一个 XML 错误,但这可能是因为我在尝试解决这个问题时搞砸了链接。非常感谢!

标签: ruby-on-rails heroku amazon-web-services imagemagick paperclip


【解决方案1】:

尝试改变:

validates_attachment_content_type :image, 
  :content_type => /\Aimage\/.*\Z/

收件人:

validates_attachment_content_type :image, 
  content_type: /^image\/(jpg|jpeg|pjpeg|png|x-png|gif)/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多