来自smb的Grails下载文件

时间:2015-03-24 11:24:01

标签: grails download smb

如何提供远程文件下载? 该文件可以通过SMB(jcifs)访问。我可以读取文件的属性。但是如何将其发送到用户浏览器?

这不起作用:

render(contentType: 'application/zip',file: new File(FullPath), fileName: domainInstance.getFilename())

完整路径如smb:// user:pass@server.domain.com/root/Files/Dowanload.zip

通过作品访问文件:

SmbFile smbFile = new SmbFile(FullPath ))

1 个答案:

答案 0 :(得分:0)

在你的控制器中尝试这样的事情:

                SmbFile smbFile = new SmbFile(FullPath )//,auth);

                if (smbFile.exists()) {
                   response.setContentType("application/octet-stream")
                   response.setHeader("Content-disposition", "filename=${domainInstance.getFilename()}")
                   response.setContentLength(Long.valueOf(smbFile.length()).intValue())
                   response.outputStream << smbFile.getInputStream()    
                   response.outputStream.flush()
                   return       
}

它在最新的Grails 2.4.4中运行良好!