grails - Grails从smb下载文件

标签 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

通过Works访问文件:
SmbFile smbFile = new SmbFile(FullPath ))

最佳答案

在您的 Controller 中尝试以下操作:

                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中运行良好!

关于grails - Grails从smb下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29231328/

相关文章:

multithreading - 具有多线程的Grails服务

java - 如何在Android Studio中使用WebView上传文件?

javascript - 检测链接是否是 javascript/jQuery 中的下载

powershell - 在Windows Server 1803上重新启动后,使用New-SmbGlobalMapping为Docker容器创建的SMB共享映射未还原

grails - 将一个grails项目中的域对象用作其他grails项目中的依赖项

grails - 在Intellij IDEA中重新创建Grails项目

rest - 无法通过GRAILS中的REST请求上传文件

Python FTPLIB 错误 530 权限被拒绝

c# - 从 asp.net 应用程序访问网络共享。在 Visual Studio 中工作但在 IIS 中不工作,为什么?

未启用 SMB 1.0/CIFS 兼容性的 Java SMB 文件共享