- Сообщений: 261
- Спасибо получено: 28
Как создать и настроить свой веб-сервер на VDS (05 сен 2024)
Осенью самое время заняться установкой и тюнингом своего веб-сервера. Не правда ли?
Форма обратной связи Joomla. Как прикрепить файл?
- ralf
- Автор темы
- Не в сети
- Завсегдатай
Less
Больше
13 года 4 мес. назад - 13 года 4 мес. назад #1
от ralf
ralf создал тему: Форма обратной связи Joomla. Как прикрепить файл?
Как в joomla реализовать возможность прикрепления файлов к письму через посредство стандартной формы обратной связи? Рецепт ненов, но популярен и востребован (!J1.0.хх !J1.5).
Для этого будем использовать стандартную функцию mosMail, у которой, среди прочих, есть параметр $attachment, поскольку вся функция mosmail завязана на phpmailer. Итак по порядку.
Добавляем в
в форму обратной связи кнопку выбора файла
Файл
в функции
делаем что-то вроде
Аспекты с загрузкой файла на сервер, проверки типа и формата и прочее – не затрагиваю, ибо пишем по необходимости в каждом конкретном случае.
То есть, самое главное – задать значением переменной $attachment как путь к файлу на сервере. В приведенном примере – это файл, загруженный из формы обратной связи.
Для Joomla 1.5 класса JMail все в принципе аналогично, почитать можно здесь - E-Mail Class. Provides a common interface to send e-mail from the Joomla! Framework
Чуть более подробно по 1.5:
1 – В саму форму не забываем добавить enctype=»multipart/form-data»
2 – не забываем про абсолютные пути к папке для временного файла
$tempdir = JPATH_ROOT."/images/";
3 – собственно функция вложения теперь упрощена, после того как мы получили файл в переменную $attachment достаточно написать
$mail->addAttachment( $attachment );
перед
$sent = $mail->Send();
Для этого будем использовать стандартную функцию mosMail, у которой, среди прочих, есть параметр $attachment, поскольку вся функция mosmail завязана на phpmailer. Итак по порядку.
Добавляем в
Code:
components\com_contact\contact.html.php
Code:
<input name="file" type="file" id="file">
Файл
Code:
components\com_contact\contact.php
Code:
function sendmail()
Code:
//USE STANDART ATTACHMENT FUNCTION
$tempdir = $mosConfig_absolute_path."/images/";
$namefile = $_FILES[‘file’][‘name’];
$filetemp = $tempdir.$namefile;
move_uploaded_file($_FILES[‘file’][‘tmp_name’], $tempdir.$namefile);
$attachment = $tempdir.$namefile;
$success = mosMail( $email, $name, $contact[0]->email_to, $mosConfig_fromname .‘: ‘. $subject, $text, $mode=0, $cc=NULL, $bcc=NULL, $attachment);
if (!$success) {
mosErrorAlert( _CONTACT_FORM_NC );
}
То есть, самое главное – задать значением переменной $attachment как путь к файлу на сервере. В приведенном примере – это файл, загруженный из формы обратной связи.
Для Joomla 1.5 класса JMail все в принципе аналогично, почитать можно здесь - E-Mail Class. Provides a common interface to send e-mail from the Joomla! Framework
Чуть более подробно по 1.5:
1 – В саму форму не забываем добавить enctype=»multipart/form-data»
2 – не забываем про абсолютные пути к папке для временного файла
$tempdir = JPATH_ROOT."/images/";
3 – собственно функция вложения теперь упрощена, после того как мы получили файл в переменную $attachment достаточно написать
$mail->addAttachment( $attachment );
перед
$sent = $mail->Send();
Последнее редактирование: 13 года 4 мес. назад пользователем ralf.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Aleksej
- Не в сети
- Модератор
11 года 11 мес. назад - 11 года 11 мес. назад #2
от Aleksej
Aleksej ответил в теме Форма обратной связи Joomla. Как прикрепить файл?
Получил письмо, которое без купюр цитирую ниже. Очень хотелось бы, чтобы на будущее форумчане были более внимательны к авторству тех материалов, что копируются из интернета; в большинстве случае вполне достаточно, на мой взгляд, просто ссылки.
Добрый день.
Прошу указать в статье меня как автора, оригинал текста находится у меня в блоге blog.pbelkov.net/2009/01/27/mosmail-attachment/
Заранее благодарен
--
С уважением, Белков Петр Константинович
Address: Российская Федерация, Севастополь
Blog: blog.pbelkov.net
Последнее редактирование: 11 года 11 мес. назад пользователем Aleksej.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.