【发布时间】:2014-12-09 10:06:24
【问题描述】:
一段时间以来,我一直在尝试将 CSV 文件下载到 grails 中的浏览器,但没有成功。我有以字节为单位的数据,并且没有运气使用以下代码......我尝试了几个选项,如渲染,但似乎没有什么对我有用。有什么建议吗?
response.contentType='text/csv';
response.setHeader("Content-Transfer-Encoding", "binary");
response.setHeader("Cache-Control", "no-cache, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setCharacterEncoding("UTF-8")
response.outputStream << data.bytes
response.outputStream.flush();
旁注:我已成功通过电子邮件发送字节,它们作为 CSV 文件正确打开
【问题讨论】:
-
您是否希望提示用户保存文件(或在外部应用程序中打开)而不是让浏览器打开它?如果是这样,请尝试:
response.setHeader("Content-disposition", "attachment; filename=\"my_file.csv\"") -
@AndrewvonDollen 我试图添加它,但仍然没有运气。它不会提示我下载。我也尝试过几种浏览器
-
嗯,还有一个建议:可能不需要包含 Content-Transfer-Encoding 标头(请参阅stackoverflow.com/a/7289434/513321)
-
@AndrewvonDollen 不幸的是仍然无法正常工作。我不知道它可能是什么。不过感谢您的帮助。
-
我似乎也记得这有点繁琐......看看AttachmentableController的
download方法的来源 - 我知道这是可行的......