将压缩文件作为附件发送

时间:2012-02-06 13:57:08

标签: ruby-on-rails ruby archiving

我有一个rails应用程序,它创建了几个csv文件,将它们拉出来并使用这一行将它们作为附件(下载)发送到客户端:

send_file t.path, :x_sendfile => true, :type => 'application/zip', :filename => "invited_friends_stats.zip"

当我查看在服务器上创建的压缩文件时,我可以使用它,但是,当我通过应用程序下载文件时,它会解压缩到.zip.cpgz文件中,同时压缩为压缩到zip文件等的.zip.cpgz文件等。

然后我下载了“Unarchiver”应用程序(在Mac OSX上),当我尝试打开.zip文件时出现错误:"the contents cannot be extracted with this program"

有谁知道为什么会这样?编码错误等?在上面的行中,或者在我的配置中是否有一些东西可以解决这个问题?

2 个答案:

答案 0 :(得分:0)

您尝试流式传输ZIP文件。尝试添加:disposition => 'attachment'以强制浏览器下载完整文件。

答案 1 :(得分:0)

尝试使用类似

的内容设置Content-Disposition响应标头
response.headers['Content-Disposition'] = "attachment; filename=\"#{@filename}\""