0

私は次のコードを持っています:

response.contentType = "application/octet-stream"
response.setContentLength(templateFile.bytes.length)
response.setHeader("Content-disposition", "attachment;filename=${fileName}")
IOUtils.copy(templateFile,response.outputStream)

templateFileはJasperReporttemplate(* .jrxml)です。そして、私は常にnet::ERR_FILE_NOT_FOUNDを取得します。さまざまなファイルタイプで、このコードは正常に機能します。

また、コンテンツタイプ「text / xml」で試しましたが、結果は同じです。

4

2 に答える 2

1

outputStreamでflush()を呼び出した後に問題が解決しました。演算子<<は暗黙的にこれを行いますが、IOUtils.copyは行いません。

于 2013-02-20T11:38:19.287 に答える
0

を使用してデータの長さを設定してみてくださいresponse.setContentLength()。また、デバッグして、ファイルのバイトがにあるかどうかを確認することもできますresponse.outputStream

これが私のために働くスニペットです:

byte[] bytes = getBytesOfFile()
response.setContentType("application/octet-stream")
response.setContentLength(bytes.length)
response.outputStream << bytes
于 2013-02-19T13:03:07.517 に答える