【问题标题】:Ruby (not rails) CGI script output file for downloadRuby(不是 rails)CGI 脚本输出文件供下载
【发布时间】:2011-05-04 11:17:58
【问题描述】:

我正在尝试获取一个脚本来输出一个 zip 文件以供下载。

脚本基本上是:

#!/usr/bin/env ruby
require 'rubygems'
require 'active_support'
require 'zip/zip'
require 'cgi'

temp_zip_filename = '/some/path/tmp/' + Time.new.usec.to_s
new_zip = File.open(temp_zip_filename, 'rb'){|f| f.read}

#header = "Content-Type: application/octet-stream"
#header << ' Content-Disposition: attachement; filename="AZipFile.zip"'

CGI.new.out 'application/zip' do
  new_zip
end

我看不到任何可以在请求计算机上设置下载文件名称的地方。它似乎总是被保存为“scriptname.cgi”。在哪里可以使用 CGI 设置内容处置?

【问题讨论】:

    标签: ruby cgi attachment


    【解决方案1】:

    听起来你想要 CGI 上的 header 方法:

    cgi = CGI.new
    cgi.header('Content-Disposition' => 'attachment;filename=AZipFile.zip')
    cgi.out 'application/zip' do
        new_zip
    end
    

    【讨论】:

      【解决方案2】:

      我相信你想要:

      CGI.new.out(
        "Content-Type" => 'application/zip',
        "content-disposition" => "attachment; filename=#{myfilename}"
      ){ new_zip }
      

      请参阅CGI#out 的文档。

      【讨论】:

        猜你喜欢
        • 2015-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-28
        • 2011-10-08
        • 2015-04-04
        • 2016-03-01
        相关资源
        最近更新 更多