file - 如何在grails中上传文件到远程FTP服务器

标签 file grails upload ftp server

我是 Grails 框架的新手。我需要通过 Grails 中的批处理应用程序将文本文件上传到远程 FTP 服务器。请求是否有人有建议,逐步处理如何连接到远程服务器并上传文件。

提前致谢。

最佳答案

首先,在您的 BuildConfig.groovy (Grails 2.x) 或 build.gradle (Grails 3.x) 中包含 commons-net:

编译'commons-net:commons-net:3.3'

其次添加一个服务:

class UploadService {
    GrailsApplication grailsApplication

    String upload(String fileName, InputStream inputStream) {
        String status
        new FTPClient().with {
            connect grailsApplication.config.getProperty('ftp.host')
            login grailsApplication.config.getProperty('ftp.username'), grailsApplication.config.getProperty('ftp.password')
            enterLocalPassiveMode()
            setFileType(BINARY_FILE_TYPE)
            changeWorkingDirectory grailsApplication.config.getProperty('ftp.uploadDir')
            storeFile(fileName, inputStream)
            status = replyString
            disconnect()
        }
        return status
    }
}

更新:

我忘了添加需要进入 grails-app/conf/Config.groovy (Grails 2.x) 或 grails-app/config/application.groovy:

ftp {
    host = 'some.host'
    username = 'myuser'
    password = '*****'
    uploadDir = 'Uploads'
}

也可以在 resources.groovy 中创建 FTPClient() 实例并改用依赖注入(inject)。

bean = {
    ftpClient(FTPClient)
}

然后在服务中加入这个:

class UploadService {
     GrailsApplication grailsApplication
     FTPClient ftpClient // Will be injected

     String upload(String fileName, InputStream inputStream) {

         String status
         ftpClient.with {
              // Same as above
         }
     }
}

这将允许您对类进行单元测试,您只需模拟 FTPClient

关于file - 如何在grails中上传文件到远程FTP服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33587155/

相关文章:

file - Hadoop 重命名文件

java - java 标记阿拉伯语文本文件

python - 将文件指针倒回到上一行的开头

grails - 如何使用Grails Web框架将CSS和javascript包含到主模板头部

grails - 使用注入(inject)集成测试 Grails 服务

jquery - 在 Firefox 中通过 SSL 使用 jQuery 和 jquery.fileupload.js 上传文件失败

file - 德尔福6 : How can I change created filedate (= file creation date)

javascript - 每个用户的express.js 唯一目录

java - php 的非 flash 多文件上传

grails - grails <g:link标记有时有效,有时无效>