#ruby #cgi #attachment
#ruby #cgi #вложение
Вопрос:
Я пытаюсь получить скрипт для вывода 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?
Ответ №1:
Звучит так, как будто вам нужен header
метод на CGI:
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
.