Файл вывода CGI-скрипта Ruby (не rails) для скачивания - PullRequest
2 голосов
/ 04 мая 2011

Я пытаюсь получить скрипт для вывода 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?

Ответы [ 2 ]

2 голосов
/ 04 мая 2011

Звучит так, как вам нужен метод header в CGI:

cgi = CGI.new
cgi.header('Content-Disposition' => 'attachment;filename=AZipFile.zip')
cgi.out 'application/zip' do
    new_zip
end
0 голосов
/ 04 мая 2011

Я верю, что вы хотите:

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

См. Документацию для CGI#out.

...