A blog about How to personalized websites and marketing strategies. Covering php script, javascript, jquery, mysql, seo, e-commerce and others.

FTP Backup File Recursively PHP Script

FTP FILE BACKUP RECURSIVELY

  1. Auto Zipping All files Inside Directory
  2. Auto Send Zipped files to FTP at once
  3. Auto Cleaning sent Zipped files on local storage
<?php
define("user", "username_ftp", true); //Your FTP Username
define("password", "password_ftp", true); //Your FTP Password
define("host", "host_ftp", true); //eg: ftp.drivehq.com
define("port", "21", true); //default ftp port is 21

/*** Script_By_Dimas_Lanjaka ***/
if (defined("user") && defined("password") && defined("host")){
// Get real path for our folder// Get real path fo 
$rootPath = realpath(__DIR__);
//array_map('unlink', glob("$rootPath*.zip"));

// Initialize archive object
$zip = new ZipArchive();
$cdate = str_replace('.', '-', $_SERVER['HTTP_HOST']);
$zip->open($cdate . '.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE);

// Create recursive directory iterator
/** @var SplFileInfo[] $files */
$files = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($rootPath),
    RecursiveIteratorIterator::LEAVES_ONLY
);

foreach ($files as $name => $file)
{
    // Skip directories (they would be added automatically)
    if (!$file->isDir())
    {
        // Get real and relative path for current file
        $filePath = $file->getRealPath();
        $relativePath = substr($filePath, strlen($rootPath) + 1);

        // Add current file to archive
        $zip->addFile($filePath, $relativePath);
    }
}

// Zip archive will be created only after closing object
$zip->close();

function sendfile($file){
$host = host;
$port = port;
$timeout = "60";
$user = user;
$pass = password;
$dest_file = $file;
$source_file = $file;
$ftp = ftp_connect($host,$port,$timeout);
ftp_login($ftp,$user,$pass);
ftp_pasv($ftp, true);

//if (ftp_delete($ftp, $file)) {
$ret = ftp_nb_put($ftp, $dest_file, $source_file, FTP_BINARY, FTP_AUTORESUME);
//}

while (FTP_MOREDATA == $ret)
    {
        // display progress bar, or someting
        $ret = ftp_nb_continue($ftp);
    }
}

function list_zipfiles($mydirectory) {

    // directory we want to scan
    $dircontents = scandir($mydirectory);

    // list the contents
    echo '<ul>';
    foreach ($dircontents as $file) {
        $extension = pathinfo($file, PATHINFO_EXTENSION);
        if ($extension == 'zip') {
            echo "<center><li>$file Backup Successfully</li></center>";
sendfile($file);
unlink($file);
        }
    }
    echo '</ul>';
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Backup File Recursively</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<h6 class="header1">PRODUCTION</h6>
<hr class="style1">
<?php
call_user_func('list_zipfiles', "./");
}
?>
</body>
</html>
<?php /*** Mohon Jangan Hapus Credit Copyright | Please Dont Remove Copyright Credits ***/ ?>
Facebook CommentsShowHide

0 komentar

Bila Ada posting yang kurang, atau error atau yang lainnya, silahkan tinggalkan komentar agar artikel/post di perbaiki.
Jangan Lupa Cek Box "Notify Me" agar tahu komentar kamu dibalas oleh saya.

If there are any posts that are missing, or error or anything else, please leave a comment for the article / post to be fixed.
Do not Forget Check Box "Notify Me" to know our comments replied by me.

Blank Template By webmanajemen.xyz