Cita:
Iniciado por DarkXNightmare ATENTOS!!!! NUEVAS NOTICIAS!!!!
MySQLBackUP tiene acceso para FTP!
En este preciso momento lo acabo de terminar y luego voy a crear la documentación para que puedan usar toda su tecnología ;D.
Atte... DarkXNightmare ;D.
No lo puedo creer!!!! . Justo en este mismo momento (en el que has hecho el post) termine de hacer esto mismo para aportar al proyecto. Esto me pasa por no abrir la boca antes.
De todos modos lo comparto. No creo que sea mejor que lo tu has hecho, pero aqui va.
ACLARACION: No soy bueno con POO asique seguramente le encontraran muchos detalles, y en la manera que esta hecho es la unica que se me ocurrio.
Hay una nueva variable en el objeto es la siguiente:
Código PHP:
/**
* Guarda el error, si lo hay, de la funcion que intenta guardar el backup en un ftp.
*
* @var string
* @access private
*/
private $errorFTP = "";
Y dos nuevas funciones:
Código PHP:
/**
* Transfiere el archivo creado localmente a un FTP.
*
* @param string $servFTP
* @param string $userFTP
* @param string $passFTP
* @param integer $portFTP
* @access public
* @return bool
*/
public function DoFTPBackUp($servFTP, $userFTP, $passFTP, $portFTP = 21)
{
$ftp_con = ftp_connect($servFTP, $portFTP);
if(!$ftp_con)
{
$this->errorFTP = 'No se pudo conectar al servidor ftp ( '.$servFTP.').';
return FALSE;
}
$ftp_login = @ftp_login($ftp_con, $userFTP, $passFTP);
if(!$ftp_login)
{
$this->errorFTP = 'Problemas con el login.';
return FALSE;
}
$fl = @fopen($this->file_path . $this->database . ".sql", "r");
if(!$fl)
{
$this->errorFTP = 'Problemas al abrir el archivo. Asegurece de haber ejecutado DoFilaBackUp() antes de esta funcion';
return FALSE;
}
if(ftp_fput($ftp_con, $this->database . ".sql", $fl, FTP_ASCII))
{
$resultado = TRUE;
}else{
$this->errorFTP = "Hubo un problema durante la carga del archivo al FTP.";
$resultado = FALSE;
}
ftp_close($ftp_con);
fclose($fl);
return $resultado;
}
/**
* Devuelve el error de la funcion DoFTPBackUp, si la hay.
*
* @access public
* @return string
*/
public function GetErrorFTP()
{
return $this->errorFTP;
}
Este es el ejemplo de como se usaria:
Código PHP:
include("class.MySQLBackUP.inc.php");
$backup = new MySQLBackUP("servidor_mysql", "usuario_mysql", "contraseña_mysql", "basededatos_a_respaldar");
$backup->file_path = "C:\\";
$backup->DoFileBackUp();
if(!$backup->DoFTPBackUp('servidor', 'usuario', 'password', 21)) #El puerto es opcional
{
echo $backup->GetErrorFTP();
}
Saludos.