@MeMoJlor

Как прикрепить несколько файлов к письму через PHPmailer?

Есть код, который может отправлять только одну картинку. Дублирую функций, все равно приходит только одна картинка.

Рабочий код:
<input type="file" name="myfile[]" multiple id="myfile">


$file = $_FILES['myfile'];

if (!empty($file['name'][0])) {
    for ($ct = 0; $ct < count($file['tmp_name']); $ct++) {
        $uploadfile = tempnam(sys_get_temp_dir(), sha1($file['name'][$ct]));
        $filename = $file['name'][$ct];
        if (move_uploaded_file($file['tmp_name'][$ct], $uploadfile)) {
            $mail->addAttachment($uploadfile, $filename);
            $rfile[] = "Файл $filename прикреплён";
        } else {
            $rfile[] = "Не удалось прикрепить файл $filename";
        }
    }   
}


Дублирую так:

$file = $_FILES['myfile'];

if (!empty($file2['name'][0])) {
    for ($ct = 0; $ct < count($file['tmp_name']); $ct++) {
        $uploadfile = tempnam(sys_get_temp_dir(), sha1($file2['name'][$ct]));
        $filename = $file2['name'][$ct];
        if (move_uploaded_file($file2['tmp_name'][$ct], $uploadfile)) {
            $mail->addAttachment($uploadfile, $filename);
            $rfile[] = "Файл $filename прикреплён";
        } else {
            $rfile[] = "Не удалось прикрепить файл $filename";
        }
    }   
}


Сам не верю в работу дубликата, ведь там еще много переменных.
  • Вопрос задан
  • 236 просмотров
Решения вопроса 1
slo_nik
@slo_nik Куратор тега PHP
Доброе утро.
Вы получаете первый элемент массива, а остальные пропускаете.
if (!empty($file['name'][0])) {
Оберните это в цикл
if (!empty($file['name'][$k])) {
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы