дана форма с инпутом с атрибутом multiple:
<form>
<input type="file" name="file" multiple="multiple">
</form>
отправляю ее аяксом через formData:
$('form').submit(function(){
$.ajax({
type: "POST",
url: "phpmailer/mail.php",
data: new FormData( this ),
processData: false,
contentType: false,
success: function() {
}
return false;
});
на стороне сервера использую библиотеку phpmailer (таким образом работает только для одного или первого файла, отправленного через форму):
<?php
require_once('class.phpmailer.php');
$email1 = new PHPMailer();
$email1->CharSet = 'UTF-8';
$email1->IsHTML(true);
$email1->From = 'some_mail@mail.ru';
$email1->FromName = 'Имя проекта';
$email1->Subject = "Тема (Имя проекта): ".$form_name;
$email1->Body = $bodytext1;
$email1->AddAddress( 'send-to-email@mail.ru' );
if (isset($_FILES['file']) && $_FILES['file']['error'] == UPLOAD_ERR_OK) {
$email1->AddAttachment($_FILES['file']['tmp_name'], $_FILES['file']['name']);
}
?>
как сделать так, чтобы сервер принимал сразу несколько файлов с одного инпута?
такой вариант не работает:
foreach ($_FILES['file'] as $file) {
if (isset($file) && $file['error'] == UPLOAD_ERR_OK) {
$email1->AddAttachment($file['tmp_name'], $file['name']);
}
}