PHPMailer - отправляется только первое вложение - PullRequest
0 голосов
/ 26 октября 2011

Я добавляю вложения следующим образом:

for ($i = 0; $i <= 2; $i++)
{
    if(file_exists($dir . $_FILES["file".$i]["tmp_name"])){

      $mail->AddAttachment($dir . $_FILES["file".$i]["tmp_name"],$_FILES["file".$i]["name"]);
    }
}

Файлы загружаются на сервер должным образом, но к письму прикрепляется только первое вложение. Для второго и третьего вложения я получаю ошибку: Could not access file: upload/. Я обнаружил, что строка 7 => 0 в class.phpmailer.php должна быть заменена на 7 => count($this->attachment), но это не помогло. Можете ли вы помочь мне с этим вопросом? ТИА

1 Ответ

0 голосов
/ 26 октября 2011

Если вы получаете сообщение об ошибке "Could not access file: upload/", это означает, что $_FILES["file1"]["tmp_name"] и $_FILES["file2"]["tmp_name"] оба являются пустыми / пустыми и не содержат значений (в противном случае будет указано "Could not access file: upload/foo.gif").

echo вывести эти значения на экран и посмотреть, действительно ли они там есть. Еще лучше, используйте print_r( $_FILES );, чтобы увидеть все значения в этом массиве.

Я подозреваю, что file_exists вернет true, даже если имена файлов пустые, потому что file_exists также работает с папками (то есть file_exists говорит вам, что папка "upload /" существует).

РЕДАКТИРОВАТЬ: Еще одна вещь, которую стоит упомянуть, если вы используете PHP 5.2.12 или выше, убедитесь, что max_file_uploads в ваших настройках INI не мешает вам загружать больше чем один файл.

...