groovyとjavaの2つの方法でファイルをダウンロードします
1671 ワード
groovy方式
JAva方式
これはGrailsプロジェクトのコードです.
groovy方式は、その定義を使用する<
JAva方式は私たちがよく知っていて、ファイルストリームの閉鎖があって、比較的に筋道がはっきりしているような気がします.
やはりjavaという方法で実現することをお勧めします.
def downloadTemplate = {
def appPath = servletContext.getRealPath("/").toString()
def file = new File(appPath + "template/" + params.fileName)
response.setHeader("Content-disposition", "attachment; filename=merTemplate.xls")
response.contentType = "application/x-rarx-rar-compressed"
response.setCharacterEncoding("utf-8")
response.outputStream << file.newInputStream()
}
JAva方式
def downloadTemplate = {
try {
def appPath = servletContext.getRealPath("/").toString()
def file = new File(appPath + "template/" + params.fileName)
if(file.length()>0){
response.setHeader("Content-disposition", "attachment; filename=merTemplate.xls")
response.contentType = "application/x-rarx-rar-compressed"
response.setCharacterEncoding("utf-8")
def out = response.getOutputStream()
InputStream is = new FileInputStream(file)
byte[] buffer = new byte[1024]
int i = -1
while ((i = is.read(buffer)) != -1){
out.write(buffer, 0, i)
}
out.flush()
out.close()
is.close()
}
}catch(Exception ex) {
ex.printStackTrace()
}
}
これはGrailsプロジェクトのコードです.
groovy方式は、その定義を使用する<
JAva方式は私たちがよく知っていて、ファイルストリームの閉鎖があって、比較的に筋道がはっきりしているような気がします.
やはりjavaという方法で実現することをお勧めします.