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 に答える