file - portable - Cómo subir archivos al servidor FTP remoto en grial
instalar filezilla (1)
Soy nuevo en el marco de Grails. Tengo un requisito para cargar el archivo de texto al servidor FTP remoto a través de la aplicación por lotes en Grails. Solicite si alguien tiene una sugerencia, proceso paso a paso sobre cómo conectarse al servidor remoto y cargar el archivo.
Gracias por adelantado.
Primero, incluya commons-net en su BuildConfig.groovy (Grails 2.x) o build.gradle (Grails 3.x):
compile ''commons-net:commons-net:3.3''
En segundo lugar agregue un servicio:
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
}
}
Actualizar:
Olvidé agregar la configuración que necesita entrar en grails-app/conf/Config.groovy
(Grails 2.x) o grails-app/config/application.groovy
:
ftp {
host = ''some.host''
username = ''myuser''
password = ''*****''
uploadDir = ''Uploads''
}
También sería posible crear la instancia de FTPClient () en resources.groovy
y usar la inyección de dependencia en su lugar.
bean = {
ftpClient(FTPClient)
}
y luego tener esto en el servicio:
class UploadService {
GrailsApplication grailsApplication
FTPClient ftpClient // Will be injected
String upload(String fileName, InputStream inputStream) {
String status
ftpClient.with {
// Same as above
}
}
}
Lo que le permitiría probar la clase en una sola unidad, donde simplemente se burla de FTPClient