diff options
author | vincent-peugnet <v.peugnet@free.fr> | 2020-04-13 19:29:56 +0200 |
---|---|---|
committer | vincent-peugnet <v.peugnet@free.fr> | 2020-04-13 19:29:56 +0200 |
commit | ce3fcb72f2d5d154461a14183069bf87db1e5776 (patch) | |
tree | 34364d5cf6ef977599a465f08b57d4fe432fc750 /app/class/Modelmedia.php | |
parent | 5d1d446ff8a7e63562a0cafac6214b473f3f9baf (diff) | |
download | wcms-ce3fcb72f2d5d154461a14183069bf87db1e5776.tar.gz wcms-ce3fcb72f2d5d154461a14183069bf87db1e5776.zip |
first arrival of flash messages close #85
Diffstat (limited to 'app/class/Modelmedia.php')
-rw-r--r-- | app/class/Modelmedia.php | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/app/class/Modelmedia.php b/app/class/Modelmedia.php index 079a5f7..a7ade6c 100644 --- a/app/class/Modelmedia.php +++ b/app/class/Modelmedia.php @@ -224,18 +224,22 @@ class Modelmedia extends Model if ($target[strlen($target) - 1] != DIRECTORY_SEPARATOR) $target .= DIRECTORY_SEPARATOR; $count = 0; + $successcount = 0; foreach ($_FILES[$index]['name'] as $filename) { $fileinfo = pathinfo($filename); $extension = idclean($fileinfo['extension']); $id = idclean($fileinfo['filename']); $tmp = $_FILES['file']['tmp_name'][$count]; - $count = $count + 1; + $count ++; $temp = $target . $id . '.' . $extension; - move_uploaded_file($tmp, $temp); + if(move_uploaded_file($tmp, $temp)) { + $successcount ++; + } $temp = ''; $tmp = ''; } + Model::sendflashmessage($successcount . ' / ' . $count . ' files have been uploaded', 'success'); } public function adddir($dir, $name) @@ -284,7 +288,7 @@ class Modelmedia extends Model */ public function deletefile(string $filedir) { - if(is_file($filedir)) { + if(is_file($filedir) && is_writable(dirname($filedir))) { return unlink($filedir); } else { return false; @@ -293,14 +297,27 @@ class Modelmedia extends Model public function multifiledelete(array $filelist) { + $success = []; foreach ($filelist as $filedir ) { if(is_string($filedir)) { - $this->deletefile($filedir); + $success[] = $this->deletefile($filedir); } } + Model::sendflashmessage(array_count_values($success) . ' / ' . count($filelist) . ' files have been deleted', 'success'); + if(in_array(false, $success)) { + return false; + } else { + return true; + } } - public function movefile(string $filedir, string $dir) + /** + * @param string $filedir current file path + * @param string $dir New directory to move file to + * + * @return bool True in case of success, false if the file does not exist or if `rename()` fail + */ + public function movefile(string $filedir, string $dir) : bool { if(substr($dir, -1) !== '/') { $dir .= '/'; @@ -313,7 +330,13 @@ class Modelmedia extends Model } } - public function multimovefile(array $filedirlist, string $dir) + /** + * @param array $filedirlist Ordered array of file list + * @param string $dir New directory to move file to + * + * @return bool False if any of moves failed, otherwise true + */ + public function multimovefile(array $filedirlist, string $dir) : bool { $success = []; foreach ($filedirlist as $filedir ) { @@ -321,6 +344,7 @@ class Modelmedia extends Model $success[] = $this->movefile($filedir, $dir); } } + Model::sendflashmessage(count($success) . ' / ' . count($filedirlist) . ' files have been moved', 'success'); if(in_array(false, $success)) { return false; } else { |