5

我来自asp.net中的剃刀。通常我会为此使用 [FilePost],但不确定如何在 grails 中执行此操作。这是情况

我有一个控制器

class MyController{
def index{ }
}

然后我在索引上有一个链接,形式为

<g:link controller="MyController" action="downloadFile">Download</g:link><br>

我想要做的是获取一个字符串(不管它是什么),我希望它提示用户下载包含该字符串的文本文件。谢谢!

4

4 回答 4

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()
}
于 2013-01-21T02:22:27.717 回答
4

所以可能是这样的:

byte[] bytes = "string".bytes

response.setContentType("text/plain")
response.setHeader("Content-disposition", "filename=\"xyz.txt\"")
response.setContentLength(bytes.size())
response.outputStream << bytes
于 2013-01-21T02:24:27.473 回答
1

是什么阻止您自己创建字节并将其提供给输出流?例如,从您的业务方法创建的 String.getbytes 或字节。

于 2013-01-21T02:27:19.773 回答
0

在标题中再次不需要 .txt 文件扩展名。

于 2016-02-02T23:42:12.670 回答