我有一个控制器,它连接到一个 url 来检索一个 csv 文件。
我可以使用以下代码在响应中发送文件,这很好。
def fileURL = "www.mysite.com/input.csv"
def thisUrl = new URL(fileURL);
def connection = thisUrl.openConnection();
def output = connection.content.text;
response.setHeader "Content-disposition", "attachment;
filename=${'output.csv'}"
response.contentType = 'text/csv'
response.outputStream << output
response.outputStream.flush()
但是我认为这种方法不适合大文件,因为整个文件都加载到控制器内存中。
我希望能够逐块读取文件块并将文件逐块写入响应块。
有任何想法吗?