回形针:发现以下错误:图像的内容与报告的内容不符
Paperclip: The following errors were found: Image has contents that are not what they are reported to be
我在 rails 应用程序中使用回形针,但我总是收到以下错误:
I, [2015-06-06T20:10:25.310071 #37358] INFO -- : Command :: file -b --mime '/tmp/58e53d1324eef6265fdb97b08ed9aadf20150606-37358-ouvtzl.png'
I, [2015-06-06T20:10:25.317478 #37358] INFO -- : [paperclip] Content Type Spoof: Filename ruby.png (application/octet-stream from Headers, [#<MIME::Type:0x000000053624c8 @friendly={"en"=>"Portable Network Graphics (PNG)"}, @system=nil, @obsolete=false, @registered=true, @use_instead=nil, @signature=false, @content_type="image/png", @raw_media_type="image", @raw_sub_type="png", @simplified="image/png", @i18n_key="image.png", @media_type="image", @sub_type="png", @docs=[], @encoding="base64", @extensions=["png"], @references=["IANA", "[Glenn_Randers-Pehrson]", "{image/png=http://www.iana.org/assignments/media-types/image/png}"], @xrefs={"person"=>["Glenn_Randers-Pehrson"], "template"=>["image/png"]}>] from Extension), content type discovered from file command: image/png. See documentation to allow this combination.
I, [2015-06-06T20:10:25.349416 #37358] INFO -- : Command :: file -b --mime '/tmp/58e53d1324eef6265fdb97b08ed9aadf20150606-37358-1n574dp.png'
I, [2015-06-06T20:10:25.356667 #37358] INFO -- : [paperclip] Content Type Spoof: Filename ruby.png (application/octet-stream from Headers, [#<MIME::Type:0x000000053624c8 @friendly={"en"=>"Portable Network Graphics (PNG)"}, @system=nil, @obsolete=false, @registered=true, @use_instead=nil, @signature=false, @content_type="image/png", @raw_media_type="image", @raw_sub_type="png", @simplified="image/png", @i18n_key="image.png", @media_type="image", @sub_type="png", @docs=[], @encoding="base64", @extensions=["png"], @references=["IANA", "[Glenn_Randers-Pehrson]", "{image/png=http://www.iana.org/assignments/media-types/image/png}"], @xrefs={"person"=>["Glenn_Randers-Pehrson"], "template"=>["image/png"]}>] from Extension), content type discovered from file command: image/png. See documentation to allow this combination.
Mongoid::Errors::Validations (
Problem:
Validation of Mock failed.
Summary:
The following errors were found: Image has contents that are not what they are reported to be
Resolution:
Try persisting the document with valid data or remove the validations.):
app/api/mockaccino/api.rb:23:in `block (2 levels) in <class:API>'
用于测试的 curl 命令:
curl -X POST -i -F image=@/home/user/workspace/ruby.png -F name=mock http://localhost:3000/api/mock
我正在尝试向服务器发送一个图像和一个名为 "name" 的参数,并使用此属性和图像创建一个模型。
型号:
class Mock
include Mongoid::Document
include Mongoid::Paperclip
field :name, type: String
has_mongoid_attached_file :image
validates_attachment_presence :image
validates_attachment_size :image, :less_than => 1.megabytes
validates_attachment_file_name :image, :matches => [/png\Z/, /jpe?g\Z/]
end
控制器(葡萄):
desc "Create an mock."
params do
requires :name, type: String, desc: "Mock name"
requires :image, :type => Rack::Multipart::UploadedFile, :desc => "Image file."
end
post do
mock = Mock.create!(
name: params[:name],
image: ActionDispatch::Http::UploadedFile.new(params[:image])
)
end
curl -i -X POST -H "Content-Type:multipart/form-data" -F image=@\"./ruby.png\";type=image/png;filename=\"ruby.png\"" http://localhost:3000/api/mock
我有一个用户正在使用各种浏览器查看它。我无法在本地开发服务器或生产服务器上复制它。它对我有用,对他们不起作用。无法隔离任何不同之处(尝试过 PC 与 Mac、各种浏览器等)
将回形针从 4.3 推回到 4.2.1 可以解决问题。这会将 activemodel 和 activesupport 从 3.2 切换回 3.0,并消除了对 mimemagic 的依赖。我的猜测是它是 mimemagic 中微妙而复杂的东西。
我在 rails 应用程序中使用回形针,但我总是收到以下错误:
I, [2015-06-06T20:10:25.310071 #37358] INFO -- : Command :: file -b --mime '/tmp/58e53d1324eef6265fdb97b08ed9aadf20150606-37358-ouvtzl.png'
I, [2015-06-06T20:10:25.317478 #37358] INFO -- : [paperclip] Content Type Spoof: Filename ruby.png (application/octet-stream from Headers, [#<MIME::Type:0x000000053624c8 @friendly={"en"=>"Portable Network Graphics (PNG)"}, @system=nil, @obsolete=false, @registered=true, @use_instead=nil, @signature=false, @content_type="image/png", @raw_media_type="image", @raw_sub_type="png", @simplified="image/png", @i18n_key="image.png", @media_type="image", @sub_type="png", @docs=[], @encoding="base64", @extensions=["png"], @references=["IANA", "[Glenn_Randers-Pehrson]", "{image/png=http://www.iana.org/assignments/media-types/image/png}"], @xrefs={"person"=>["Glenn_Randers-Pehrson"], "template"=>["image/png"]}>] from Extension), content type discovered from file command: image/png. See documentation to allow this combination.
I, [2015-06-06T20:10:25.349416 #37358] INFO -- : Command :: file -b --mime '/tmp/58e53d1324eef6265fdb97b08ed9aadf20150606-37358-1n574dp.png'
I, [2015-06-06T20:10:25.356667 #37358] INFO -- : [paperclip] Content Type Spoof: Filename ruby.png (application/octet-stream from Headers, [#<MIME::Type:0x000000053624c8 @friendly={"en"=>"Portable Network Graphics (PNG)"}, @system=nil, @obsolete=false, @registered=true, @use_instead=nil, @signature=false, @content_type="image/png", @raw_media_type="image", @raw_sub_type="png", @simplified="image/png", @i18n_key="image.png", @media_type="image", @sub_type="png", @docs=[], @encoding="base64", @extensions=["png"], @references=["IANA", "[Glenn_Randers-Pehrson]", "{image/png=http://www.iana.org/assignments/media-types/image/png}"], @xrefs={"person"=>["Glenn_Randers-Pehrson"], "template"=>["image/png"]}>] from Extension), content type discovered from file command: image/png. See documentation to allow this combination.
Mongoid::Errors::Validations (
Problem:
Validation of Mock failed.
Summary:
The following errors were found: Image has contents that are not what they are reported to be
Resolution:
Try persisting the document with valid data or remove the validations.):
app/api/mockaccino/api.rb:23:in `block (2 levels) in <class:API>'
用于测试的 curl 命令:
curl -X POST -i -F image=@/home/user/workspace/ruby.png -F name=mock http://localhost:3000/api/mock
我正在尝试向服务器发送一个图像和一个名为 "name" 的参数,并使用此属性和图像创建一个模型。
型号:
class Mock
include Mongoid::Document
include Mongoid::Paperclip
field :name, type: String
has_mongoid_attached_file :image
validates_attachment_presence :image
validates_attachment_size :image, :less_than => 1.megabytes
validates_attachment_file_name :image, :matches => [/png\Z/, /jpe?g\Z/]
end
控制器(葡萄):
desc "Create an mock."
params do
requires :name, type: String, desc: "Mock name"
requires :image, :type => Rack::Multipart::UploadedFile, :desc => "Image file."
end
post do
mock = Mock.create!(
name: params[:name],
image: ActionDispatch::Http::UploadedFile.new(params[:image])
)
end
curl -i -X POST -H "Content-Type:multipart/form-data" -F image=@\"./ruby.png\";type=image/png;filename=\"ruby.png\"" http://localhost:3000/api/mock
我有一个用户正在使用各种浏览器查看它。我无法在本地开发服务器或生产服务器上复制它。它对我有用,对他们不起作用。无法隔离任何不同之处(尝试过 PC 与 Mac、各种浏览器等)
将回形针从 4.3 推回到 4.2.1 可以解决问题。这会将 activemodel 和 activesupport 从 3.2 切换回 3.0,并消除了对 mimemagic 的依赖。我的猜测是它是 mimemagic 中微妙而复杂的东西。