Имеется вот такая форма. В ней идет отправка файла.
<div class="modal-body">
<div class="modal_wrap">
<img src="<?php bloginfo('template_directory'); ?>/assets/img/modal.png" alt="">
<h2 class="modal_wrap__title">
Оставьте заявку
</h2>
<div class="modal_brd"></div>
<p class="modal_wrap__text">
Оставьте заявку с контактными — данными и наши специалисты свяжутся с вами в ближайшее время.
</p>
<form action="" class="modal_form" enctype="multipart/form-data">
<input class="modal_input modal_input--name" type="text" placeholder="Введите имя">
<input class="modal_input modal_input--phone" type="text" placeholder="Введите телефон">
<input class="modal_input modal_input--mail" type="text" placeholder="Введите e-mail">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<input name="userfile" type="file" class="modal_input--userfile">
<textarea class="modal_textarea" name="" id="" cols="30" rows="10" placeholder="Текст заявки"></textarea>
<button type="button" class="modal_btn">отправить заявку</button>
</form>
</div>
</div>
Далее данная форма обрабатывается этим скриптом:
$(document).ready(function() {
$(".modal_btn").click(function(event) {
event.preventDefault();
var phone = $(".modal_input--phone").val();
var name = $(".modal_input--name").val();
var mail = $(".modal_input--mail").val()
var ms = $(".modal_textarea").val();
var userfile = $(".modal_input--userfile").val();
if (name.length < 1) {
alert('Введите корректное имя')
return false;
} else if (!phone.match(/^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/)) {
alert('Введите корректный номер телефона')
return false;
} else if (ms.length < 5) {
alert('Сообщение должно содержать от 5-ти символов')
return false;
} else if (!mail.match(/^[-._a-z0-9]+@(?:[a-z0-9][-a-z0-9]+\.)+[a-z]{2,6}$/)) {
alert('Введите корректный e-mail')
return false;
} else {
$.post("./wp-content/themes/uslugi/send_t.php", {
ms: ms,
name: name,
phone: phone,
mail: mail,
userfile: userfile,
}, res);
}
console.log(userfile);
});
function res(data) {
if (data === "+") {
alert('Заявка успешно отправлена!');
} else {
alert('11');
}
}
Тут в userfile находится путь такого вида:
В конце данные отправляются этим скриптом на почту (Все отправляется, кроме файла + ошибку выбивает в ответе):
<?php
require_once __DIR__.'/vendor/autoload.php';
use PHPMailer\PHPMailer\PHPMailer;
if(strlen($_POST['ms'])>4 and strlen($_POST['name'])>1 and strlen($_POST['phone'])>4){
error_reporting(E_ALL);
ini_set("display_errors", 1);
function send_email($to,$theme,$message){
$mail = new PHPMailer(true); // Passing `true` enables exceptions
$uploadfile = tempnam(sys_get_temp_dir(), hash('sha256', $_FILES['userfile']['name']));
try {
//Server settings
$mail->SMTPDebug = 0; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->CharSet = 'UTF-8';
$mail->Host = 'smtp.mail.ru'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = '***.***.01@***.ru'; // SMTP username
$mail->Password = '******'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
//Recipients
$mail->setFrom('****', '***');
$mail->addAddress('***, '****'); // Add a recipient
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Customer order Corplex';
$mail->Body = 'Name: '.$_POST['name'].'<br /> Phone: '.$_POST['phone'].'<br /> Message: '.$_POST['ms'].'<br /> E-mail: '.$_POST['mail'];
$mail->addAttachment($uploadfile, $_FILES['userfile']['name']);
$mail->AltBody = 'Application';
$mail->send();
echo '+';
} catch (Exception $e) {
echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
}
}
if(send_email('**.**.**.**@****.*','Заказ', 'Имя:'.$_POST['name'].'. <br >Cообщение: '.$_POST['ms'].'. <br> Почта: '.$_POST['mail'])){
echo $_FILES['userfile']['tmp'];
echo "+";
}
}
?>
Вот сама ошибка: