Tag: zip

无法使用ruby on rails和paperclip gem上传zip文件

我正在开发一个rails web应用程序。 刚刚创建并准备了一些模型和东西。 应用程序非常简单。 但是现在我有一个问题,就是设置gem paperclip来为模型添加附件。 几乎一切都很好,如附加图像/ jpg甚至pdf。 但是我无法上传zip文件。 我尝试了不同的zip文件,但我总是得到:“Attachment Paperclip :: Errors :: NotIdentifiedByImageMagickError” 这是我的模特: class Order { :medium => “300×300>”, :thumb => “100×100>” }, :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 我正在Mac(Yosemite)上开发,通过brew安装imagemagick并使用SQLite。 我把它添加到我的Gemfile中: gem “paperclip”, “~> 4.2” gem ‘cocaine’, ‘~> 0.5.4’ 我在最后几个小时研究谷歌,有很多人在使用回形针,但我没有发现任何人在上传zip文件时遇到问题。 也许有人可以在这里帮忙。 谢谢

Rails:如何在Heroku上使用系统zip从xml模板制作docx?

我在本地工作,将模板文件存储在#{Rails.root}/tmp ,使用system “cd tmp/template; zip -r ../#{@filename} *”压缩文件,发送文件。 docx(zip存档)到S3然后再到浏览器。 问题是Heroku没有找到文件。 在创建xml文件之前,我从另一个位置复制模板目录( system “cp -R support/ser_template tmp/” )。 我理解Heroku的只读文件系统,但是我不能让#{Process.pid}乱丢我的文件名(Word要求将xml文件命名为document.xml)。 无论如何,我可以将模板文件存储在亚马逊上并仍使用Heroku的系统zip实用程序吗? RubyZip不会创建正确的docx存档 。 编辑:这是代码: require ‘aws/s3’ class WordDocument include ConnectS3 def initialize(content) connect_s3 @pid = Process.pid @filename = “SER_” + Time.now.strftime(“%Y%m%d-%H%M%S”) + ‘.docx’ system “cp -R #{Rails.root}/support/ser_template #{temp_path}” xml = File.open(xml_path, ‘w’) xml.puts content xml.close system “cd […]

使用Tempfile在rails中创建一个zip文件

我想在rails中创建一个临时的.zip。 为了创建zip文件我使用rubyzip gem。 目前我这样做: zfname = Tempfile.new([‘somename’,’.zip’], Rails.root.to_s + ‘/tmp/’) Zip::ZipFile.open(zfname.path, Zip::ZipFile::CREATE) do |zipfile| zipfile.add(file, basepath + file) end 这会产生以下错误: Zip::ZipError: Zip end of central directory signature not found 是否可以使用Tempfile进行拉链? 如果是的话,这里有什么问题?

Rails Ziping文件 – 读取二进制数据

我正在使用rubyzip库来压缩文件。 但我遇到了问题。 我试试: Zip::ZipOutputStream.open(‘c:/sites/efiling2/test.zip’) do |zos| zos.put_next_entry(“test.rtf”) zos.write IO.read(‘c:/sites/efiling2/test.rtf’) zos.put_next_entry(“test.jpg”) zos.write IO.read(‘c:/sites/efiling2/test.jpg’) end 但是write方法限制了原始文件的大小。 例如,我的源文件test.jpg的大小为11913字节 ,但在存档中有一个文件test.jpg ,大小为11551字节 。 使用test.rtf也有相同的情况。 有什么建议?

为什么Ruby在做同样的事情时会有拉链和转置?

他们似乎做同样的事情。 g = [{ a: “A” }, { b: “B” }] r = [{ x: “X” }, { y: “Y” }] g.zip(r) # => [[{:a=>”A”}, {:x=>”X”}], [{:b=>”B”}, {:y=>”Y”}]] [g,r].transpose # => [[{:a=>”A”}, {:x=>”X”}], [{:b=>”B”}, {:y=>”Y”}]] 为什么有两种方法?

如何在ruby中仅在内存中创建zip文件?

我想创建给定目录中所有HTML文件的zip文件。 该zip将通过电子邮件作为附件与目录中的其余文件一起发送。 如果我从小马发送任何附件是HTML文件,我到目前为止尝试的所有电子邮件客户端都无法阅读电子邮件。 所以我以为我会拉链。 有没有办法在运行时压缩 HTML 文件,但实际上只在内存中 ,而不使用Windows平台上的任何临时文件? 最好不要使用任何外部程序? 如果我理解正确,两种方法描述如下: http://info.michael-simons.eu/2008/01/21/using-rubyzip-to-create-zip-files-on-the-fly/或 http://rubyzip.sourceforge.net/classes/Zip/ZipFile.html 正在使用某种临时文件。

用ruby解压缩(zip,tar,tag.gz)文件

我想解压缩很多zip文件。 是否有模块或脚本检查zip文件的格式并解压缩? 这应该适用于Linux,我不关心其他操作系统。