Cualquier inquietud no duden en preguntar...
Para el buen funcionaniento de esta clase es necesario descargar la libreria de APACHE llamada commons-net-ftp-2.0.jar
esta clase es la abstraccion del medio de envio FTP.
Para el buen funcionaniento de esta clase es necesario descargar la libreria de APACHE llamada commons-net-ftp-2.0.jar
esta clase es la abstraccion del medio de envio FTP.
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.SocketException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPConnectionClosedException;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import router.Bin.Agentes.clSistema;
/***
* Clase que representa el medio de envio FTP
* @author Diego Fernando Carvajal Rodriguez
* @version 001
* @see ##################
* @since 03/11/2010 - JDK 1.6
*/
public class clFtp {
private String sUsrio;
private String sClve;
private String sHost;
private int iPrto;
private String sDscpcionError;
private String sDrctrioFtp;
private String sTpoArchvo;
private String sEstndar;
private clPlano oclPlno;
private FTPClient client;
private FileInputStream fis;
private String filename;
private boolean bEstdo;
private FTPFile[] arftpArchvos;
private FTPFile ftpArchvo;
private int iTpoEnvio;// 1 == Correo; 2 == ftp
public clFtp(){
this.sUsrio = "";
this.sClve = "";
this.sHost = "";
this.iPrto = -1;
this.sDscpcionError = "";
this.sDrctrioFtp = "";
this.sTpoArchvo = "";
this.sEstndar = "";
this.oclPlno = new clPlano();
this.client = new FTPClient();
this.fis = null;
this.filename = "";
this.bEstdo = true;
this.arftpArchvos = null;
this.ftpArchvo = null;
this.iTpoEnvio = 0;
}
public int getiTpoEnvio() {
return this.iTpoEnvio;
}
public void setiTpoEnvio(int iTpoEnvio) {
this.iTpoEnvio = iTpoEnvio;
}
public String getsClve() {
return sClve;
}
public String getsEstndar() {
return sEstndar;
}
public void setsEstndar(String sEstndar) {
this.sEstndar = sEstndar;
}
public String getsTpoArchvo() {
return this.sTpoArchvo;
}
public void setsTpoArchvo(String sTpoArchvo) {
this.sTpoArchvo = sTpoArchvo;
}
public String getsDrctrioFtp() {
return this.sDrctrioFtp;
}
public void setsDrctrioFtp(String sDrctrioFtp) {
this.sDrctrioFtp = sDrctrioFtp;
}
public String getsDscpcionError() {
return this.sDscpcionError;
}
public void setsClve(String sClve) {
this.sClve = sClve;
}
public int getiPrto() {
return this.iPrto;
}
public void setiPrto(int iPrto) {
this.iPrto = iPrto;
}
public String getsHost() {
return this.sHost;
}
public void setsHost(String sHost) {
this.sHost = sHost;
}
public String getsUsrio() {
return this.sUsrio;
}
public void setsUsrio(String sUsrio) {
this.sUsrio = sUsrio;
}
/***
* Metodo que envia un archivo a un cliente mediante FTP
* @param flArchvo parametro tipo File que contiene el archivo a ser enviado
* @param oclSstma parametro del tipo clSistema que representa el objeto cargado con la informacion del sistema
* @return boolean true == envio exitoso; false == envio fallido
*/
public synchronized boolean fnbEnviaArchivo(File flArchvo, clSistema oclSstma){
this.bEstdo = true;
try {
this.client = new FTPClient();
this.client.connect(this.sHost);
this.bEstdo = this.client.login(this.sUsrio, this.sClve);
if(this.bEstdo && FTPReply.isPositiveCompletion(this.client.getReplyCode())){
this.filename = flArchvo.getName();
this.fis = new FileInputStream(flArchvo.getPath());
this.bEstdo = this.client.setFileType(FTPClient.ASCII_FILE_TYPE);
if(this.bEstdo){
this.bEstdo = this.client.changeWorkingDirectory(this.sDrctrioFtp);
if(this.bEstdo){
this.bEstdo = this.client.storeFile(this.filename, this.fis);
}
this.arftpArchvos = this.client.listFiles(this.sDrctrioFtp+"\\"+this.filename);
if(this.arftpArchvos.length != 0){
this.ftpArchvo = this.arftpArchvos[0];
if(this.ftpArchvo.toString().trim().isEmpty()){
this.bEstdo = false;
this.sDscpcionError = "No se comprobo que el archivo "+this.filename+" llego a sudestino";
System.out.println("\nEXCEPCION: "+this.sDscpcionError);
this.oclPlno.fnExcepcion("EXCEPCION: "+this.sDscpcionError+" "+this.ftpArchvo.toString()+" clFtp:fnbEnviaArchivo:1");
}
}
this.client.disconnect();
this.fis.close();
}
}else{
this.sDscpcionError = "La conexion es fallida";
System.out.println("\nEXCEPCION: "+this.sDscpcionError);
this.oclPlno.fnExcepcion("EXCEPCION: "+this.sDscpcionError+" clFtp:fnbEnviaArchivo:3");
this.oclPlno.fnbMueveArchivoWin(flArchvo, oclSstma.getsDrccionRpstrio()+"noProcesado");
this.bEstdo = false;
this.client.disconnect();
}
} catch(SocketException ex){
this.sDscpcionError = ex.getMessage();
System.out.println("\nEXCEPCION: "+this.sDscpcionError);
this.oclPlno.fnExcepcion("EXCEPCION: "+this.sDscpcionError+" clFtp:fnbEnviaArchivo:4");
this.oclPlno.fnbMueveArchivoWin(flArchvo, oclSstma.getsDrccionRpstrio()+"noProcesado");
this.bEstdo = false;
} catch(FTPConnectionClosedException ex){
this.sDscpcionError = ex.getMessage();
System.out.println("\nEXCEPCION: "+this.sDscpcionError);
this.oclPlno.fnExcepcion("EXCEPCION: "+this.sDscpcionError+" clFtp:fnbEnviaArchivo:5");
this.oclPlno.fnbMueveArchivoWin(flArchvo, oclSstma.getsDrccionRpstrio()+"noProcesado");
this.bEstdo = false;
} catch (IOException ex) {
this.sDscpcionError = ex.getMessage();
System.out.println("\nEXCEPCION: "+this.sDscpcionError);
this.oclPlno.fnExcepcion("EXCEPCION: "+this.sDscpcionError+" clFtp:fnbEnviaArchivo:6");
this.oclPlno.fnbMueveArchivoWin(flArchvo, oclSstma.getsDrccionRpstrio()+"noProcesado");
this.bEstdo = false;
}
return this.bEstdo;
}
}
hola
ResponderEliminarMuy interesante tu codigo, tambien estoy trabajando con esta libreria y es estupenda. De casualidad sabes como hacer un upload o download pero con resume? es decir continuando con una carga o descarga previa desde los bytes que se habian enviado antes? si es asi agradeceria que me dieras una mano.
Saludos
import router.Bin.Agentes.clSistema;
ResponderEliminarprivate clPlano oclPlno;
public synchronized boolean fnbEnviaArchivo(File flArchvo, clSistema oclSstma){
me tiene loco estos errores