Почему массив $_FILES['имя инпута']['name'] пустой?

Пытаюсь отправить картинку на почту с помощью фреймворка PHPMailer.

Суть в том что отправляется какой-то файл phpdfw234 (к примеру), а картинки нет.

Понял что проблема $_FILES['имя инпута']['name'].

$mail->addAttachment($_FILES['upload']['tmp_name'], $FILES['upload']['name']);

На просторах интернета нашёл код, он работает, но непойму как.

if (isset($_FILES)) { 
    print_r($_FILES);//если есть файлы в форме
    foreach ($_FILES as $file_item) {
        if (!is_array($file_item['error'])) { //проверяем множественное или нет поле файла
            if ($file_item['error'] == UPLOAD_ERR_OK) {
                $mail->addAttachment($file_item['tmp_name'],$file_item['name']);
            }
        } else {
            foreach ($file_item["error"] as $key => $error){
                if ($error == UPLOAD_ERR_OK) {
                    $tmp_name = $file_item["tmp_name"][$key];
                    $name = $file_item["name"][$key];
                    $mail->addAttachment($tmp_name,$name);
                }
            }
        }
    }
}

Ответы (0 шт):