我来自asp.net中的剃须刀。通常我会使用[FilePost],但不知道如何在grails中使用它。这是情况
我有一个控制器
class MyController{
def index{ }
}
然后我以
的形式链接索引<g:link controller="MyController" action="downloadFile">Download</g:link><br>
我想要做的是取一个字符串(无关紧要),我希望它提示用户下载包含该字符串的文本文件。谢谢!
答案 0 :(得分:4)
工作解决方案:
def downloadFile =
{
File file = File.createTempFile("temp",".txt")
file.write("hello world!")
response.setHeader "Content-disposition", "attachment; filename=${file.name}.txt"
response.contentType = 'text-plain'
response.outputStream << file.text
response.outputStream.flush()
}
答案 1 :(得分:4)
所以可能是这样的:
byte[] bytes = "string".bytes
response.setContentType("text/plain")
response.setHeader("Content-disposition", "filename=\"xyz.txt\"")
response.setContentLength(bytes.size())
response.outputStream << bytes
答案 2 :(得分:1)
什么阻止您自己创建字节并将其提供给输出流?例如,从您的业务方法创建的String.getbytes或字节。
答案 3 :(得分:0)
在标题中,不再需要.txt文件扩展名。