def download
filename='filename' #文件名 filename.zip
if FileTest.file?('public/date/'+filename+'.zip')
File.delete('public/date/'+filename+'.zip')
End #如果文件已经存在,则先删除
a='abcdefg'
#\puts a.
#读取数据库的内容
@picture = Picture.find(:first)
@data = @picture.picture_data
Zip::ZipFile.open('public/date/'+filename+'.zip', Zip::ZipFile::CREATE) { #打开一个文件
|zipfile|
text=text+"内容"
text=text+"\r\n"
zipfile.file.open("index.txt","w") { |f| f.puts text } #把数据库的内容写到文本文件里去
zipfile.dir.mkdir("mydir") #新建目录
zipfile.file.open("mydir/index.txt", "w") { |f| f.puts @tempt1 }
#把文本放在新建的目录下
zipfile.file.open("mydir/second.jpg", "w") { |f| f.puts(@data) }
#把数据库里的图片放在新建的目录下
}
send_file 'public/date/'+filename+'.zip', :filename => filename+'.zip', :type => "application/octet-stream" #打包下载
end |