In comments you said:
Output is just one image two times
Sure it is so, because you did this:
for each uploaded image
move image somewhere
end for
if no errors
show 2 same images (it will be last images shown 2 times)
end if
You do this part:
if(empty($error)){
echo "Success";
echo "<img src='" . $desired_dir . '/' . $file_name . "'>";
echo "<img src='" . $desired_dir . '/' . $file_name . "'>";
}
not in for, but right after it. Your code output last uploaded image 2 times.
You need to put output in for in
loop (updated code with array of images links):
$images = array();
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){
$file_name = $key.$_FILES['files']['name'][$key];
$file_size =$_FILES['files']['size'][$key];
$file_tmp =$_FILES['files']['tmp_name'][$key];
$file_type=$_FILES['files']['type'][$key];
if($file_size > 2097152){
$errors[]='File size must be less than 2 MB';
}
$desired_dir="../img/full-size";
if(empty($errors)==true){
if(is_dir($desired_dir)==false){
mkdir("$desired_dir", 0700); // Create directory if it does not exist
}
if(is_dir("$desired_dir/".$file_name)==false){
move_uploaded_file($file_tmp,"$desired_dir/".$file_name);
}else{ // rename the file if another one exist
$new_dir="$desired_dir/".$file_name.time();
rename($file_tmp,$new_dir) ;
}
$images[] ="<img src='" . $desired_dir . '/' . $file_name . "'>"; // <----- there
}else{
print_r($errors);
}
}
foreach($images as $image) {
echo $image;
}