From 08fe04c241ca49bd63e7ef6ca39a951718d190e3 Mon Sep 17 00:00:00 2001 From: Tobias Reich Date: Fri, 16 May 2014 22:47:45 +0200 Subject: [PATCH] Added Import:move from Import:server and disabled moveToTemp by default (#151) --- php/modules/Import.php | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/php/modules/Import.php b/php/modules/Import.php index 7584156..8851635 100644 --- a/php/modules/Import.php +++ b/php/modules/Import.php @@ -58,11 +58,7 @@ class Import extends Module { } - static function server($albumID = 0, $path) { - - global $database, $plugins, $settings; - - if (!isset($path)) $path = LYCHEE_UPLOADS_IMPORT; + static function move($database, $path) { # Determine OS type and set move cmd (Windows untested!) $myos = substr(PHP_OS,0,3); @@ -75,7 +71,7 @@ class Import extends Module { $tmpdirname = md5(time() . rand()); # Make temporary directory - if (@mkdir(LYCHEE_DATA . $tmpdirname)===false) { + if (@mkdir(LYCHEE_DATA . $tmpdirname)===false) { Log::error($database, __METHOD__, __LINE__, 'Failed to create temporary directory'); return false; } @@ -107,11 +103,26 @@ class Import extends Module { return false; } + # Set new path + $path = LYCHEE_DATA . $tmpdirname; + + return $path; + + } + + static function server($albumID = 0, $path, $useTemp = false) { + + global $database, $plugins, $settings; + + if (!isset($path)) $path = LYCHEE_UPLOADS_IMPORT; + + if ($useTemp===true) $path = Import::move($database, $path); + $error = false; $contains['photos'] = false; $contains['albums'] = false; - $path = LYCHEE_DATA . $tmpdirname; + # Get all files $files = glob($path . '/*'); foreach ($files as $file) { @@ -149,7 +160,7 @@ class Import extends Module { continue; } - Import::server($newAlbumID, $file . '/'); + Import::server($newAlbumID, $file . '/', false); $contains['albums'] = true; @@ -158,7 +169,7 @@ class Import extends Module { } # Delete tmpdir if import was successful - if ($error===false) rmdir(LYCHEE_DATA . $tmpdirname); + if ($error===false&&$useTemp===true&&isset($tmpdirname)) rmdir(LYCHEE_DATA . $tmpdirname); if ($contains['photos']===false&&$contains['albums']===false) return 'Warning: Folder empty or no readable files to process!'; if ($contains['photos']===false&&$contains['albums']===true) return 'Notice: Import only contains albums!';