(Ruby) IO.读取而不是读取整个文件



我想通过rails方法下载一个包含一些图像的zip文件。问题是,当我试图读取这些文件时,我没有得到整个文件。当然,这是相当恼人的显示图像。

下面是我的代码:
  def download_zip(image_list)
    if !image_list.blank?
      file_name = "pictures.zip"
      t = Tempfile.new("lolbite11")
      Zip::OutputStream.open(t.path) do |z|
        image_list.each do |img|
          title = img.name
          title += ".jpg" unless title.end_with?(".jpg")
          z.put_next_entry(title)
          z.print IO.read(Rails.root.join('public', img.path)) <- Here is the problem ?
        end
      end
      send_file t.path, :type => 'application/zip',
                :disposition => 'attachment',
                :filename => file_name
      t.close
    end
  end

在我下载压缩并提取它之后。我用文本编辑器打开我的图像,遗憾地看到我没有完整的图像…我试着输出IO。读取',它只显示我最终文件中的内容

我终于找到了另一种方法来解决我的File.copy_stream()的问题。

但如果有人知道为什么这不起作用,请随时向我解释。

相关内容

  • 没有找到相关文章

最新更新