Как передавать файл при отправке с формы?
Всем доброго!
Подскажите как передавать файл при отправке формы с фронтенда? Сама форма выводиться так:
{if $wa->post("phone") and shopCustom::sendUniqueOrder(передаваемые поля)} {*AJAX ОТВЕТ*} {else} <div class="wa-form uniqueOrder"> <form method="post" id="unique_order_send_form" action="{$wa->currentUrl()}" data-url="{$wa->getUrl('blog')}" enctype="multipart/form-data"> <input type="hidden" name="admin" value="{$wa->shop->settings('email')}"> ........ <div class="wa-field"> <div class="wa-value wa-submit"> <input class="callSubmit" type="submit" value="[s`Send`]" name="sendUniqueOrder"> </div> </div> </form> </div> {/if}
в js:
//UNIQUE ORDER EMAIL $("#unique_order_send_form").submit(function(){ var form = $(this); var data = form.serialize(); var email = $('input[name=email]'), phone = $('input[name=phone]'), count = $('input[name=count]'), url = $(this).data('url'); email.removeClass('errorData'); phone.removeClass('errorData'); count.removeClass('errorData'); if (email.val()!='' && phone.val()!='' && count.val()!=''/* && !user_call.val()*/){ $.ajax({ type: 'POST', //url: location.href, url: url, data: data, success: function(response){ $('.uniqueOrder').html('Ваша заявка принята! Мы свяжемся с Вами в ближайшее время.'); //вместо формы пишем сообщение } }); } else { if (!email.val()) email.addClass('errorData'); if (!phone.val()) phone.addClass('errorData'); if (!count.val()) count.addClass('errorData'); } return false; //отключаем перезагрузку страницы });
ну и класс shopCustom :
public static function sendUniqueOrder(поля){ //Функция отправляет письмо "Индивид. заказ" ....... //Здесь обработка полей ....... //$file = waRequest::file('print_file'); //if(isset($file)) $body .= "///// ".$file->tmp_name; $subject = 'Заголовок'; $mail_message = new waMailMessage($subject, $body); //$mail_message->setFrom('info@test.com', 'Робот'); //$mail_message->setTo(array($admin_email => 'TEST')); $mail_message->setFrom('info@test.com'); $mail_message->setTo($admin_email); //$mail_message->addAttachment($path, $filename); $mail_message->send(); return true; }
Как я понимаю строка - $mail_message->addAttachment($path, $filename); и не обходима для передачи файла к письму, но яайл прикрепиться только тогда когда будет закачан на сервер. Дак как его прикрепить по средствам WEBASYST ?
Ну или как залить файл через ajax в нужное место? чтобы была вожможность уже банально просто передать его место в этот запрос.
1 ответ
https://developers.webasyst.ru/docs/features/upload/