我正在尝试使用脚本输出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设置内容处理?
答案 0 :(得分:2)
听起来你想要CGI上的header
方法:
cgi = CGI.new
cgi.header('Content-Disposition' => 'attachment;filename=AZipFile.zip')
cgi.out 'application/zip' do
new_zip
end
答案 1 :(得分:0)
我相信你想要:
CGI.new.out(
"Content-Type" => 'application/zip',
"content-disposition" => "attachment; filename=#{myfilename}"
){ new_zip }
请参阅CGI#out
的文档。