ruby-on-rails – 使用Tempfile在rails中创建一个zip文件
发布时间:2020-12-17 01:42:44 所属栏目:百科 来源:网络整理
导读:我想在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,basepat
我想在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应用程序中,当我需要向用户发送zip文件时,我只是将它们存储在缓冲区中并在控制器中使用“发送数据”方法.
我最初尝试使用’Tempfile’,但它有一个额外的任务,删除zip文件后发送给用户这是一个痛苦. 这是你要找的东西吗? Zip::OutputStream.write_buffer do |stream| file_paths.each_with_index do |file_path,index| # rename the pdf stream.put_next_entry("#{name}-#{index + 1}.pdf") # add pdf to zip stream.write IO.read(file_path) end end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |