[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Отправка нескольких файлов на почту
DeeKeiD
Здравствуйте, есть задача :

2 вида загружаемых файлов (2 input'a) + текстовые поля

1. документы
2. изображения

Нужно :
Приложить все загруженные файлы к письму и отправить его( с сохранением расширения файлов) и удалить файлы из временной папки

Может есть какой готовый пример?
Что использовать, while, foreach?
Как прописать chmod всем загруженным файлам?


_____________
Бесполезно просить пощады у цезаря
Фатальная ошибка : Звонок в неопределенную функцию ©
DeeKeiD
Нарыл такой скриптик, переделал под себя, но почему-то не отправляет значения переменных в теле письма
Код

<?php
var_dump($_POST);
if($_POST && isset($_FILES['file']))
{
$recipient_email = "deekeid@mail.ru"; //recepient
$from_email = "info@myweb.lv"; //from email using site domain.
$subject = "Attachment email from your website!"; //email subject line

$sender_name = filter_var($_POST["s_name"], FILTER_SANITIZE_STRING); //capture sender name
$sender_email = filter_var($_POST["s_email"], FILTER_SANITIZE_STRING); //capture sender email
$sender_message = filter_var($_POST["s_message"], FILTER_SANITIZE_STRING); //capture message
$attachments = $_FILES['file'];

//php validation
if(strlen($sender_name)<4){
die('Name is too short or empty');
}
if (!filter_var($sender_email, FILTER_VALIDATE_EMAIL)) {
die('Invalid email');
}
if(strlen($sender_message)<4){
die('Too short message! Please enter something');
}

$file_count = count($attachments['name']); //count total files attached
$boundary = md5("sanwebe.com");

if($file_count > 0){ //if attachment exists
//header

$headers = "MIME-Version: 1.0\r\n";
$headers .= "From:".$from_email."\r\n";
$headers .= "Reply-To: ".$sender_email."" . "\r\n";
$headers .= "Content-Type: multipart/mixed; boundary = $boundary\r\n\r\n";

//message text
$body = "--$boundary\r\n";
$body .= "Content-Type: text/plain; charset=ISO-8859-1\r\n";
$body .= "Content-Transfer-Encoding: base64\r\n\r\n";
$body .= chunk_split(base64_encode($sender_message));

//attachments
for ($x = 0; $x < $file_count; $x++){
if(!empty($attachments['name'][$x])){

if($attachments['error'][$x]>0) //exit script and output error if we encounter any
{
$mymsg = array(
1=>"The uploaded file exceeds the upload_max_filesize directive in php.ini",
2=>"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form",
3=>"The uploaded file was only partially uploaded",
4=>"No file was uploaded",
6=>"Missing a temporary folder" );
die($mymsg[$attachments['error'][$x]]);
}

//get file info
$file_name = $attachments['name'][$x];
$file_size = $attachments['size'][$x];
$file_type = $attachments['type'][$x];

//read file
$handle = fopen($attachments['tmp_name'][$x], "r");
$content = fread($handle, $file_size);
fclose($handle);
$encoded_content = chunk_split(base64_encode($content)); //split into smaller chunks (RFC 2045)

$body .= "--$boundary\r\n";
$body .="Content-Type: $file_type; name=\"$file_name\"\r\n";
$body .="Content-Disposition: attachment; filename=\"$file_name\"\r\n";
$body .="Content-Transfer-Encoding: base64\r\n";
$body .="X-Attachment-Id: ".rand(1000,99999)."\r\n\r\n";
$body .= $encoded_content;
}
}

}
else{ //send plain email otherwise
$headers = "From:".$from_email."\r\n".
"Reply-To: ".$sender_email. "\n" .
"X-Mailer: PHP/" . phpversion();
$body = $sender_message;
}

$sentMail = @mail($recipient_email, $subject, $body, $headers);
if($sentMail) //output success or failure messages
{
die('Thank you for your email');
}else{
die('Could not send mail! Please check your PHP mail configuration.');
}
}

else{
echo '
<div align="center">
<form method="post" action="" enctype="multipart/form-data">
<table width="1000px">
<tr>
<td width="30%">Objekta fiziskā adrese: </td>
<td width="70%"><input type="text"></td>
</tr>
<tr>
<td width="30%">Objekta nosaukums(ja ir tāds): </td>
<td width="70%"><input type="text"></td>
</tr>
<tr>
<td width="30%">Objekta tips (māja, dzīvoklis): </td>
<td width="70%"><input type="text"></td>
</tr>
<tr>
<td width="30%">Ieejas/kāpņutelpas kods:: </td>
<td width="70%"><input type="text"></td>
</tr>
<tr>
<td width="30%">Ieejai/kāpņu telpai ir atslēga:: </td>
<td width="70%"><input type="text"></td>
</tr>
<tr>
<td width="30%">Atbildīgās personas: </td>
<td width="70%"><textarea rows="5" cols="100"></textarea></td>
</tr>
<tr>
<td width="30%">Piezīmes: </td>
<td width="70%"><textarea rows="5" cols="100"></textarea></td>
</tr>
<tr>
<td width="30%">Objekta fotografijas: </td>
<td width="70%"><input type="file" name="file[]" multiple="multiple" /></td>
</tr>
<tr>
<td width="30%">Objekta piebraukšanas plāns: </td>
<td width="70%"><input type="file" name="file[]" multiple="multiple" /></td>
</tr>
<tr>
<td width="30%"></td>
<td width="70%"><input type="submit" value="Send"></td>
</tr>
</table>
</form>
</div>
'
;

}
?>


_____________
Бесполезно просить пощады у цезаря
Фатальная ошибка : Звонок в неопределенную функцию ©
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.