Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Can';t使用ruby on rails和回形针gem上传zip文件_Ruby On Rails_Upload_Zip_Imagemagick_Paperclip - Fatal编程技术网

Ruby on rails Can';t使用ruby on rails和回形针gem上传zip文件

Ruby on rails Can';t使用ruby on rails和回形针gem上传zip文件,ruby-on-rails,upload,zip,imagemagick,paperclip,Ruby On Rails,Upload,Zip,Imagemagick,Paperclip,我正在开发一个rails web应用程序。刚刚创建并准备了一些模型和东西。应用程序非常简单。但现在我遇到了一个问题,设置gem回形针来向模型添加附件。几乎所有东西都可以正常工作,比如附加图像/jpg甚至pdf 但是我不能上传zip文件。我尝试了不同的zip文件,但我总是得到: “附件回形针::错误::未由ImageMagickeror识别” 这是我的模型: class Order < ActiveRecord::Base has_attached_file :attachment, :

我正在开发一个rails web应用程序。刚刚创建并准备了一些模型和东西。应用程序非常简单。但现在我遇到了一个问题,设置gem回形针来向模型添加附件。几乎所有东西都可以正常工作,比如附加图像/jpg甚至pdf

但是我不能上传zip文件。我尝试了不同的zip文件,但我总是得到: “附件回形针::错误::未由ImageMagickeror识别”

这是我的模型:

class Order < ActiveRecord::Base
  has_attached_file :attachment, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"
  validates_attachment_content_type :attachment, :content_type => ["application/pdf", "application/zip", "application/x-zip", "application/x-zip-compressed","application/octet-stream","image/jpg","image/png"]
  belongs_to :client
  has_one :status
end
在过去的几个小时里,我在谷歌上做了调查,有很多人在用回形针挣扎,但我没有发现任何人在上传zip文件时有问题

也许有人能帮上忙。
谢谢,ImageMagick无法读取.zip文件。请参见此处可接受的文件类型:

如果您试图从zip文件生成缩略图,ImageMagick每次都会失败

尝试将其添加到您的模型中:

before_post_process :skip_for_zip

def skip_for_zip
   ! %w(application/zip application/x-zip).include?(asset_content_type)
end

然后你的应用程序就不会尝试将zip文件作为图像处理了

我刚刚发现,当我删除“content\u type…”的行并添加诸如“…:matches=>[/zip\Z/,/jpe?g\Z/”之类的内容时,我可以上传zip文件。非常感谢!这样做了。谢谢!注意:你的属性是“attachment”,所以用“attachment\u content\u type”替换“asset\u content\u type”.
before_post_process :skip_for_zip

def skip_for_zip
   ! %w(application/zip application/x-zip).include?(asset_content_type)
end