MODX revo как передать файл с формы через phpmailer

140
06 января 2020, 02:30

Собственно есть сайт на MODX revo. Есть форма с которой пользователь может отправлять помимо своих данных еще и файл. Т.е что-то типа

<script> 
  $("#main-pofo").submit(function() { 
    var th = $(this); 
        $.ajax({ 
            type: "POST", 
            url: "/assets/php/phone.php", 
            data: th.serialize() 
        }).done(function() { 
            $(th).find(".success").addClass("active").fadeIn(); 
            setTimeout(function() { 
                $(th).find(".success").removeClass("active").fadeOut(); 
                th.trigger("reset"); 
            }, 1000); 
        }); 
        return false; 
    }); 
</script>
<form id="main-pofo" method="post"> 
<input type="text" name="name"> 
<input type="file" name="file"> 
</form> 
 
 
//собственно сам файл phone.php 
<?php 
use PHPMailer\PHPMailer\PHPMailer; 
use PHPMailer\PHPMailer\Exception; 
 
require 'src/Exception.php'; 
require 'src/PHPMailer.php'; 
require 'src/SMTP.php'; 
$name = $_POST['user_name']; 
$email = $_POST['user_mail']; 
$message = $_POST['user_msg']; 
$phone = $_POST['user_phone']; 
$mail = new PHPMailer(true); 
 
try { 
    //Server settings 
    $mail->SMTPDebug = 2; 
    $mail->isSMTP(); 
    $mail->Host       = '********'; 
    $mail->SMTPAuth   = true; 
    $mail->Username   = '********'; 
    $mail->Password   = '*******'; 
    $mail->SMTPSecure = 'ssl'; 
    $mail->Port       = 465; 
    $mail->CharSet = 'utf-8'; 
 
    //Recipients 
    $mail->setFrom(********); 
    $mail->addAddress(*******); 
    //$mail->addAddress('ellen@example.com');                
    //$mail->addReplyTo('info@example.com', 'Information'); 
    //$mail->addCC('cc@example.com'); 
    //$mail->addBCC('bcc@example.com'); 
 
    // Attachments 
    //$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments 
    //$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name 
    $mail->addAttachment($_FILES['file']['tmp_name'], $_FILES['file']['name']); 
    // Content 
    $mail->isHTML(true);                                  // Set email format to HTML 
    $mail->Subject = 'С сайта ******'; 
    $mail->Body    = "<br><b>ФИО или организация:</b>$name<br><b>Email:</b>$email<br><b>Телефон:</b>$phone <br><b>Сообщение:</b>$message"; 
    $mail->AltBody = 'Что-то пошло не так и поэтому здесь этот текст'; 
 
?>

Форма для примера просто. Файл не передается. Что сделать и как исправить?

READ ALSO
Не устанавливаются кукис

Не устанавливаются кукис

При авторизации не хочет запоминаться логин с помощью куки, написал все верно, но вот единственная строчка с setcookie('login', $_POST['login'], time()+3600*24*30*12*20);...

149
Обращение к базе данных из класса

Обращение к базе данных из класса

Всем привет! Подскажите такой моментНа сколько плохой практикой является передавать как параметр $link = mysqli_connect($host, $user, $password, $database) в класс

139
Не загружается файл

Не загружается файл

Всем приветПодскажите, куда делся файл? Название файла в базу записывается

125
Разложить в php ответ из MySQL

Разложить в php ответ из MySQL

Доброе утро, уважаемые! Получаю вывод из MySQL таблицы в таком виде:

147