mirror of
https://github.com/HaschekSolutions/pictshare.git
synced 2025-11-14 12:08:01 +00:00
84 lines
2.5 KiB
PHP
84 lines
2.5 KiB
PHP
<?php
|
|
|
|
/*
|
|
* Alternative folder upload
|
|
* This tool copies all raw images/videos/gifs to the defined ALT_FOLDER location
|
|
* This will create a copy in the location. The location can be a mounted external server like CIFS or sshfs
|
|
* This will allow you to store a backup of your images on some other server
|
|
*
|
|
*/
|
|
|
|
if(php_sapi_name() !== 'cli') exit('This script can only be called via CLI');
|
|
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE);
|
|
define('DS', DIRECTORY_SEPARATOR);
|
|
define('ROOT', dirname(__FILE__).DS.'..');
|
|
include_once(ROOT.DS.'inc/config.inc.php');
|
|
include_once(ROOT.DS.'inc/core.php');
|
|
require_once(ROOT . DS . 'content-controllers' . DS. 'video'. DS . 'video.controller.php');
|
|
|
|
if(!defined('ALT_FOLDER') || !ALT_FOLDER)
|
|
die("[X] Error: You should define the ALT_FOLDER config in your inc/config.inc.php first");
|
|
|
|
if(in_array('sim',$argv))
|
|
{
|
|
echo "[!!!!] SIMULATION MODE. Nothing will be uploaded [!!!!] \n\n";
|
|
$sim = true;
|
|
}
|
|
else $sim = false;
|
|
|
|
|
|
//gather local data
|
|
echo "[i] Looping through local files\n";
|
|
|
|
$dir = ROOT.DS.'data'.DS;
|
|
$dh = opendir($dir);
|
|
$localfiles = array();
|
|
|
|
$allhashes=0;$allsize=0;
|
|
$skips=0;$skipsize=0;
|
|
$copied=0;$copysize=0;
|
|
$errors=0;$errorsize=0;
|
|
|
|
while (false !== ($hash = readdir($dh))) {
|
|
if($hash=='.'||$hash=='..') continue;
|
|
$img = $dir.$hash.DS.$hash;
|
|
if(!file_exists($img)) continue;
|
|
$info = strtolower(pathinfo($img, PATHINFO_EXTENSION));
|
|
$thissize = filesize($img);
|
|
$type = getTypeOfFile($img);
|
|
++$allhashes;
|
|
$allsize+=$thissize;
|
|
if($type)
|
|
{
|
|
if(file_exists(ALT_FOLDER.DS.$hash))
|
|
{
|
|
echo " [!] Skipping existing $hash \n";
|
|
++$skips;
|
|
$skipsize+=$thissize;
|
|
}
|
|
else
|
|
{
|
|
++$copied;
|
|
$copysize+=$thissize;
|
|
echo "[i] Copying $hash to ".ALT_FOLDER.DS.$hash." \r";
|
|
if($sim===false)
|
|
copy($img,ALT_FOLDER.DS.$hash);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
++$errors;
|
|
$errorsize+=$thissize;
|
|
echo " [X] ERROR $hash not allowed format: $info \n";
|
|
}
|
|
|
|
}
|
|
|
|
echo "\n[i] Done\n";
|
|
echo "\n----------- STATS ----------\n\n";
|
|
echo " All files found:\t$allhashes\t".renderSize($allsize)."\n";
|
|
echo " Copied files:\t$copied\t".renderSize($copysize)."\n";
|
|
echo " Skipped files:\t$skips\t".renderSize($skipsize)."\n";
|
|
echo " Erroneous files:\t$errors\t".renderSize($errorsize)."\n";
|
|
echo "\n";
|