Доброго вечера!
На сайте есть форма с прикреплением нескольких файлов.
Почему на почту прикрепленные файлы приходят пустые?
Вот код:
... проверка других переменных
if (!empty($_FILES["attachments"])) {
$file = array();
$file = $_FILES["attachments"];
}
// Отправляем почтовое сообщение
if(empty($file)) mail($mail_to,"=?UTF-8?B?" . base64_encode ($thm). "?=",$msg,"Content-type:text/html; charset = utf-8\r\nFrom:$thm <$email>");
else send_mail($mail_to, $email, "=?UTF-8?B?" . base64_encode ($thm). "?=", $msg, $file);
function send_mail($mail_to, $email, $thema, $html, $file){
$them = Тайтл сообщения;
$EOL = "\r\n";
$boundary = "--".md5(uniqid(time()));
$headers = "MIME-Version: 1.0;$EOL";
$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL";
$headers .= "From: =?UTF-8?B?" . base64_encode($them) . "?= <" . $email . ">$EOL";
$multipart = "--$boundary$EOL";
$multipart .= "Content-Type: text/html; charset=utf-8$EOL";
$multipart .= "Content-Transfer-Encoding: base64$EOL";
$multipart .= $EOL;
$multipart .= chunk_split(base64_encode($html));
if ($file) {
$i = 0;
while ($i <= 3) {
$fp = fopen($file["tmp_name"][$i],"rb");
if (!$fp){
$file = "";
}else{
$data = fread($fp, filesize($file["tmp_name"][$i]));
fclose($fp);
}
$name = $file["name"][$i];
$multipart .= "$EOL--$boundary$EOL";
$multipart .= "Content-Type: application/octet-stream; name=\"$name\"$EOL";
$multipart .= "Content-Transfer-Encoding: base64$EOL";
$multipart .= "Content-Disposition: attachment; filename=\"$name\"$EOL";
$multipart .= $EOL;
$multipart .= chunk_split(base64_encode($data));
$i++;
}
}
$multipart .= "$EOL--$boundary--$EOL";
if(!mail($mail_to, $thema, $multipart, $headers)){
return False;
}else {
return True;
}
exit;
}
Причем не важно сколько файлов отправляю - один или больше - на почту приходит 4 пустых файла
Подскажите пожалуйста, что не так?