Это примерно такая ситуация:
Для копирования файлов в файловом менеджменте я использую флажки, по которым можно щелкнуть.Каждый флажок имеет свое значение;файл!Например: uploads/image1.jpg
или uploads/image2.jpg
Все значения связаны с 1 переменной, $checkboxfiles
(поэтому это массив файлов).Для копирования отмеченных файлов в другую папку я проверяю, существует ли файл с таким именем в этой папке.Если да, я показываю всплывающее окно с формой для подтверждения перезаписи или нет.
Код php:
// Multiple copy and move (checkboxes)
if( isset($_POST["checkboxes_value"]) && isset($_POST["cbdestination"]) ) {
$checkboxfiles = explode("," , $_POST["checkboxes_value"]); // contains multiple values of files
foreach($checkboxfiles as $checkboxfile) {
$src_file = $checkboxfile;
$fileName = basename($src_file);
$new_dest = $_POST['cbdestination'];
/* New path for this file */
$dest_file = $MainFolderName.'/'. $new_dest . '/' . $fileName;
/* check for overwriting */
$allow = $_POST['overwrite'];
if($allow == '') { // if not empty, the request comes from the popup and is confirmed
if(file_exists($dest_file)) {
include('alerts/file_copy_exists.php'); // includes a form to confirm overwriting
exit; // i must use this and wait for confirmation
}
}
$copy = copy( $src_file, $dest_file );
// and so on...
} // end foreach
Проблема: допустим, я проверяю 3 файла и хочу скопироватьих в другую папку.2 из них с таким именем уже существуют в этой папке.В этом случае я должен использовать exit;
в цикле перезаписи и ждать подтверждения.Но когда я использую выход, foreach больше не работает.Появляется всплывающее окно только для последнего файла.
Когда не используется exit;
, появляются 2 всплывающих окна для подтверждения.Но в этом случае файлы уже перезаписаны.Так что эти всплывающие окна бесполезны!
Как я могу справиться с этой ситуацией?