目前我正在使用导出插件在服务器上动态创建csvfile,然后通过response.outputstream将其发送到浏览器(由导出插件完成)。相反,我想要它创建csv文件,一旦完成,通过电子邮件发送给user.looked到导出插件代码,它看起来像是写入响应输出流。如何从这个输出流中读取,创建一个文件,而不是将其存储到光盘而只是通过电子邮件发送它?
def csv=responseArchive
def csvDate=csv?.date
def csvArchive=csv?.archive
def csvReport=csv?.reporting
def csvDelta=csv?.totals
response.contentType = grailsApplication.config.grails.mime.types['csv']
response.setHeader("Content-disposition", "attachment; filename=test.csv")
List fields = ["date", "archive", "reporting", "totals"]
Map labels = ["csvDate": "Date","csvArchive":"Archive","csvReport":"Reporting","csvDelta":"Totals"]
// Formatter closure
def upperCase = { domain, value ->
return value.toUpperCase()
}
def title = { domain, value ->
return domain?.date + ": "+domain?.archive+ ": " + domain?.reporting+ ": " + domain?.delta
}
String Csv="csv"
Map formatters = [csv: upperCase]
Map parameters = [title: "Report", "column.widths": [0.2, 0.3, 0.5]]
exportService.export(Csv,response.outputStream, responseArchive, fields, labels, formatters, parameters)
sendMail {
multipart true
to "test@gmail.com"
body "Hello Watcher!"
attachBytes "Some-File-Name.csv", "text/csv", contentOrder.getBytes("UTF-8")}