X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Прикрепление 2х файлов
Dude_hb
Dude_hb
Topic Starter сообщение 23.8.2007, 13:46; Ответить: Dude_hb
Сообщение #1


Хочу узнать как можно прикрепить 2 файла.
Нужно, чтоб происходило так.
Действие 1: они отправляются на серв
Действие 2: после обработки эти же файлы отправляются во вложении на мыло

Заранее благодарю!
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 23.8.2007, 14:44; Ответить: Webmaster_hb
Сообщение #2


(Dude_hb @ 23.8.2007, 16:46) *
Хочу узнать как можно прикрепить 2 файла.
Нужно, чтоб происходило так.
Действие 1: они отправляются на серв
Действие 2: после обработки эти же файлы отправляются во вложении на мыло

Заранее благодарю!

действие первое:
на сайте делаете форму с инпутом типа файл
в action формы указываете имя файла-скрипта обработчика в котором и будет код PHP
пример
<form enctype="multipart/form-data" action="_URL_" method="post">
Отправить этот файл: <input name="userfile" type="file">
<input type="submit">
</form>


файл скрипт может работать с переменной $_FILES
содержимое массива будет
$_FILES['userfile']['name'] Оригинальное имя файла на компьютере клиента.
$_FILES['userfile']['type'] Mime-тип файла, в случае, если браузер предоставил такую информацию. Пример: "image/gif".
$_FILES['userfile']['size'] Размер в байтах принятого файла.
$_FILES['userfile']['tmp_name'] Временное имя, с которым принятый файл был сохранен на сервере.
$_FILES['userfile']['error'] Код ошибки.

далее файл скрипт может перенести файл в нужную вами директорию (не забыв удалить его из временной папки)

либо напрямую прикреплять файл из временной директории

Действие второе:
для отправки на email файлов стандартной функции PHP не хватает, вернее для этого требуется самому разобраться в заголовках писем которые отправлются и составлять их самим

но большинство использует готовые библиотеки (классы) для работы с почтой

PHP.net ссылается на работу с PEAR::Mail
там есть уже готовые методы для включения в письмо аттачментов

если и там будут вопросы, пишите
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Dude_hb
Dude_hb
Topic Starter сообщение 23.8.2007, 17:08; Ответить: Dude_hb
Сообщение #3


это ща написано для одного файла, а мне нужно, чтобы можно было прикрепить 2 файла. Чтоб так скажем было 2е кнопочки "ОБЗОР" ))
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 23.8.2007, 17:13; Ответить: Webmaster_hb
Сообщение #4


(Dude_hb @ 23.8.2007, 20:08) *
это ща написано для одного файла, а мне нужно, чтобы можно было прикрепить 2 файла. Чтоб так скажем было 2е кнопочки "ОБЗОР" ))

да хоть 10 :rjunimagu:

просто надо поставить разные имена для формы <input>
к примеру, userfile2 и т.п.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 23.8.2007, 19:09; Ответить: Webmaster_hb
Сообщение #5


вот исходник файла для аттача двух файлов
[php]
print_r($POST);
print_r($_FILES);
Error_Reporting(E_ALL & ~E_NOTICE);
$picture = "";
$picture2 = "";
// Если поле выбора вложения не пустое - закачиваем его на сервер
if (!empty($_FILES['mail_file']['tmp_name']) && !empty($_FILES['mail_file2']['tmp_name']))
{
// Закачиваем файл
$path = $_FILES['mail_file']['name'];
$path2 = $_FILES['mail_file2']['name'];
if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path;
if (copy($_FILES['mail_file2']['tmp_name'], $path2)) $picture2 = $path2;
}

$thm = "Заказ с www.rvss.ru";
$msg = "<p><font face=Verdana, Arial, Helvetica, sans-serif size=+1 color=#003366>Информация о клиенте:</font></p>
<p><font face=Verdana, Arial, Helvetica, sans-serif size=-1 color=#333333>
1. Имя: <strong>$familia $name $otchestvo</strong><br>
2. Город: <strong>$town</strong> Индекс: <strong>$ind</strong><br>
3. Улица: <strong>$ulica</strong><br>
4. Дом / Квартира: <strong>$dom - $kv</strong><br>
5. Телефон: <strong>$fone</strong><br>
6. e-mail: <a href=mailto:$mailklient><strong>$mailklient</strong></a></font></p>
<hr color=#FF6600>
<p><font face=Verdana, Arial, Helvetica, sans-serif size=+1 color=#003366>Информация о заказе:</font></p>
<p><font face=Verdana, Arial, Helvetica, sans-serif size=-1 color=#333333>
1. Шаблон <strong>$shablon</strong><br>";
$mail_to = "ваш_email";
// Отправляем почтовое сообщение
if(empty($picture)) mail($mail_to, $thm, $msg);
else send_mail($mail_to, $thm, $msg, $picture, $picture2);
// Вспомогательная функция для отправки почтового сообщения с вложением
function send_mail($to, $thm, $html, $path, $path2)
{
$fp = fopen($path,"r");
if (!$fp)
{
print "Файл $path не может быть прочитан";
exit();
}
$file = fread($fp, filesize($path));
fclose($fp);
$fp2 = fopen($path2,"r");
if (!$fp2)
{
print "Файл $path2 не может быть прочитан";
exit();
}
$file2 = fread($fp2, filesize($path2));
fclose($fp2);

$boundary = "--".md5(uniqid(time())); // генерируем разделитель
$headers .= "MIME-Version: 1.0\n";
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
$multipart .= "--$boundary\n";
$kod = 'windows-1251';
$multipart .= "Content-Type: text/html; charset=$kod\n";
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
$multipart .= "$html\n\n";
$message_part = "--$boundary\n";
$message_part .= "Content-Type: application/octet-stream\n";
$message_part .= "Content-Transfer-Encoding: base64\n";
$message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
$message_part .= chunk_split(base64_encode($file))."\n";
$message_part .= "--$boundary\n";
$message_part .= "Content-Type: application/octet-stream\n";
$message_part .= "Content-Transfer-Encoding: base64\n";
$message_part .= "Content-Disposition: attachment; filename = \"".$path2."\"\n\n";
$message_part .= chunk_split(base64_encode($file2))."\n";

$multipart .= $message_part."--$boundary--\n";
if(!mail($to, $thm, $multipart, $headers))
{
echo "К сожалению, письмо не отправлено";
exit();
}
}
[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Dude_hb
Dude_hb
Topic Starter сообщение 25.8.2007, 23:19; Ответить: Dude_hb
Сообщение #6


получилось круто, но теперь он не отсылает сообщение заказчику. и выдает ошибку в строчке
// Вспомогательная функция для отправки почтового сообщения с вложением
function send_mail($to, $thm, $html, $path, $path2
)
вот сижу, пытаюсь что-то изменить, но ничего не получается.... Не могу понять в чем же дело!!!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 25.8.2007, 23:57; Ответить: Webmaster_hb
Сообщение #7


(Dude_hb @ 26.8.2007, 02:19) *
получилось круто, но теперь он не отсылает сообщение заказчику. и выдает ошибку в строчке
// Вспомогательная функция для отправки почтового сообщения с вложением
function send_mail($to, $thm, $html, $path, $path2)
вот сижу, пытаюсь что-то изменить, но ничего не получается.... Не могу понять в чем же дело!!!

ты полностью использовал приведенный скрипт без изменений ???
и тектст ошибки тоже напиши
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
FLICKER
FLICKER
сообщение 30.8.2007, 1:10; Ответить: FLICKER
Сообщение #8


Админ - умный чувак.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Максимус_hb
Максимус_hb
сообщение 19.3.2008, 12:05; Ответить: Максимус_hb
Сообщение #9


Здравствуйте! Я посмотрел выше изложенные советы :goodpost: и начал думать как их применить к своему случаю, у меня всё просто:

Имя:

E-mail:

Сообщение:

Добавить файл:

и кнопка отправить

я так и не понял куда нужно добавлять эту функцию :nea:
вот скрипт-обработчик:
if (isset($_POST['$name'])) {$name = $_POST['$name'];}
if (isset($_POST['$email'])) {$email = $_POST['$email'];}
if (isset($_POST['$message'])) {$message = $_POST['$message'];}

$address = 'admin@site.ru';
$sub = "Вопрос от клиента";
$mes = "Автор назвался: $name \nУказал свой адрес: $email \nСодержание письма: $message";
$verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email");
if ($verify == 'true')
{
echo "<p>Спасибо Ваше сообщение принято! В ближайшее время мы рассмотрим Ваше сообщение и сообщим ответ";
}
else
{
echo "<p>Сообщение не отправлено, попробуйте заново...";
}


Чего и в какое место мне добавить в этом скрипте для того, чтоб он присылал мне прикреплённый файл? А то я в PHP новичёк :rolleyes: и мне трудно самому сообразить :dobr:

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) FinFile - новые возможности для монетизации Ваших файлов!
3 FileXmaster 2051 25.7.2020, 16:10
автор: -Condis-
Открытая тема (нет новых ответов) Добавление файлов
0 PHP_Programist 2553 25.4.2018, 12:25
автор: PHP_Programist
Открытая тема (нет новых ответов) Добавление файлов на сайт
1 Dess33 2784 8.4.2018, 2:32
автор: rasul
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыБесплатный сервис для быстрой шифрованной передачи файлов
1 xfile 1259 10.6.2017, 8:02
автор: Zulus
Открытая тема (нет новых ответов) www.prodafile.ru – интернет-сервис по продаже файлов пользователей. Платим 5% с продаж привлеченных.
2 prodafile 5838 29.10.2016, 0:04
автор: seosite


 



RSS Текстовая версия Сейчас: 29.3.2024, 5:00
Дизайн