Бесконечный цикл при загрузке изображения

Я хочу загрузить изображения, используя кнопку обзора, но когда я нажимаю, генерируется бесконечный цикл. Я хочу, чтобы каждый файл загружался, имя: 001, затем 002, затем 003 …

Вот коды:

Index.php

<?php

require('class/Image.php');

if(!empty($_FILES)){
$image = new Image();
$images = $image->upload($_FILES);
}
if($images === true){
$msg_success = 'Le chargement a réussi';
} else {
$msg_error = 'Le chargement a échoué';
}

?>

<h1>Ajouter une image</h1>

<?php

if(isset($msg_success)){
echo $msg_success;
}
if(isset($msg_error)){
echo $msg_error;
}

?>

<form method="post" action="" enctype="multipart/form-data">
<input type="file" value="" name="upload[]" multiple="multiple">
<input type="submit" name="uploadFormSubmit" value="Ajouter">
</form>

image.php

<?php

class Image{

public function upload($files){

$upload_dir = '/Applications/MAMP/htdocs/Devoir/PHP/Avancé/1/images/';
foreach($files['upload']['error'] as $key => $error){
$error = 0;
if(!isset($i)){
$i = 1;
}
if($error == UPLOAD_ERR_OK){
$tmp_name = $files['upload']['tmp_name'][$key];
$name = $files['upload']['name'][$key];
$tab_name = explode('.', $name);
$format = '%1$03d';
$file_nbr = sprintf($format, $i);
while(file_exists($upload_dir . $file_nbr . '.' . $tab_name[1])){
$i++;
}
}
if(move_uploaded_file($tmp_name, $upload_dir . $file_nbr . '.' . $tab_name[1]) == false){
$error += 1;
}
if($error == 0){
return true;
} else {
return false;
}
}
}
}

-1

Решение

Вы, вероятно, должны включить $file_nbr = sprintf($format, $i); в вашем цикле while:

while (file_exists($upload_dir . $file_nbr . '.' . $tab_name[1])){
$i++;
$file_nbr = sprintf($format, $i);
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]