2013-02-12 72 views
0

我有以下代码:Grails的力控制器下载文件

def getMyFile(){ 


    File myFile = new File("/path/to/file.xsl") 

    try{ 

     response.setHeader "Content-disposition", "attachment; filename=${myFile.name}" 
     response.contentType = new MimetypesFileTypeMap().getContentType(myFile) 
     response.outputStream << myFile .bytes 
     response.outputStream.flush() 
    } 

    catch (e){ 
     println(e.message) 
    } 

} 

当访问该控制器的动作,我想浏览器下载Excel文件。

该代码不会在控制台中创建任何错误,但该文件未被正确下载。

+0

你有没有尝试设置内容长度。 response.setContentLength(...) – uchamp 2013-02-12 14:36:02

+0

是的但不工作 – Valeriane 2013-02-12 14:43:12

回答

3

这里的东西,对我的作品进行了大量的文件类型

 response.setContentType("application/octet-stream") 
     response.setHeader("Content-disposition", "attachment; filename=\"myFileName\"") 
     response.outputStream << myFile.newInputStream() 
     return