const files = $(this).find('[name="files"]').get(0).files;
const formData = new FormData();
formData.append('message', message);
if (files.length > 0) {
jQuery.each(files, (i, file) => formData.append('files[]', file));
}
// settings request
url: 'mailer/send_letter.php',
type: 'post',
processData: false,
contentType: false,
data: formData,
// exit(json_encode($_FILES));
"files":{"name":["2a1842f5b4924bd3a1d8a49366901b3c.jpg","061518_1849_1.jpg"],"type":["image\/jpeg","image\/jpeg"],"tmp_name":["\/tmp\/phpkvVvDC","\/tmp\/phpiz70oj"],"error":[0,0],"size":[124537,79068]}
// обработка
if (isset($_FILES['files'])) {
foreach($_FILES['files'] as $position => $file)
{
if($_FILES['files']['error'][$position] !== 0) continue;
$name = $_FILES['files']['name'][$position];
$path = $_FILES['files']['tmp_name'][$position];
$mail->addAttachment($path, $name);
}
}
<script type="text/javascript">
// По готовности страницы, вешаем на форму обрабочтик onsubmit инлайново:
document.addEventListener('DOMContentLoaded', function() {
document.querySelector('form#FORM_ID').setAttribute('onsubmit', 'event.preventDefault(); form_send(this);');
});
// Фуцнкция для отправки формы на чистом JavaScript:
function form_send(form) {
var url = form.getAttribute('action') + '?time=' + new Date().getTime();
var xhr = new XMLHttpRequest(); xhr.open('POST', url);
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
form.setAttribute('onsubmit', 'event.preventDefault();');
form.innerHTML = xhr.responseText;
}
else {
alert('При отправке формы произошла ошбика, детали смотрите в консоли.');
console.log('При отправке формы произошла ошбика, ниже объект с деталями ошибки:');
console.dir(xhr);
}
}
}
xhr.send(new FormData(form));
}
</script>