asstral
26.11.2013 - 15:39
Цитата |
и чтобы увидеть $_FILES у форм должен быть enctype= multipart/form-data |
Обязательно.
<form enctype="multipart/form-data" class="vertical total_form" method="post" action="send.php">
bp файла send не делаю никакого секрета. не могу найти как прикрепить файл, поэтому выкладываю ниже код
<?
// Mailer
require("mailer/phpmailer.inc.php");
$table = "<table border='1' cellpadding='6' cellspacing='0'>";
foreach($_REQUEST["data"] as $key => $data) {
if(strlen($key) > 2) {
$table .= "<tr><th colspan='2' align='left'>".$key." </th></tr>";
foreach($data as $f => $v) {
if(strlen($f) > 0) {
if(strlen($f) <= 2) {
$f = "Опция";
}
if(trim($v) == "") {
continue;
}
$table .= "<tr><td>".$f." </td><td>".$v." </td></tr>";
}
}
}
}
$table .= "</table>";
$mail = new phpmailer();
$mail->AddAddress("info@cargobroker.ru", "info@cargobroker.ru");
$mail->AddReplyTo("info@cargobroker.ru", "noreply@cargobroker.ru");
$mail->From = "info@cargobroker.ru";
$mail->FromName = "Калькулятор по страхованию речных судов";
$mail->Subject = "Расчет калькулятора";
$mail->IsHTML(true);
$mail->CharSet = "utf-8";
$mail->Body = "\n\r\n\r".$table;
$mail->Send();
header("Location: ./?ok");
?>
Игорь_Vasinsky
27.11.2013 - 11:23
посмотрите примеры по работе с классом phpmailer
у вас в коде даже намёка нету на прикрепление файлов
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь, в phpmailer есть аттачи
/////////////////////////////////////////////////
// ATTACHMENT METHODS
/////////////////////////////////////////////////
// Check if attachment is valid and add to list
function AddAttachment($path) {
if(!is_file($path))
$this->error_handler(sprintf("Could not find %s file on filesystem", $path));
// Separate file name from full path
$separator = "/";
$len = strlen($path);
// Set $separator to win32 style
if(!ereg($separator, $path))
$separator = "\\";
// Get the filename from the path
$pos = strrpos($path, $separator) + 1;
$filename = substr($path, $pos, $len);
// Set message boundary
$this->boundary = "_b" . md5(uniqid(time()));
// Append to $attachment array
$cur = count($this->attachment);
$this->attachment[$cur][0] = $path;
$this->attachment[$cur][1] = $filename;
}
// Attach text and binary attachments to body
function attach_all() {
// Return text of body
$mime = array();
$mime[] = sprintf("--Boundary-=%s\n", $this->boundary);
$mime[] = sprintf("Content-Type: %s; %s\n", $this->ContentType, "charset = \"utf-8\"");
$mime[] = "Content-Transfer-Encoding: 8bit\n";
$mime[] = sprintf("%s\n\n", $this->Body);
// Add all attachments
for($x = 0; $x < count($this->attachment); $x++)
{
$path = $this->attachment[$x][0];
$filename = $this->attachment[$x][1];
$mime[] = sprintf("--Boundary-=%s\n", $this->boundary);
$mime[] = "Content-Type: application/octet-stream; name=".$filename."\n";
$mime[] = sprintf("name=\"%s\"\n", $filename);
$mime[] = "Content-Transfer-Encoding: base64\n";
$mime[] = sprintf("Content-Disposition: attachment; filename=\"%s\"\n\n", $filename);
$mime[] = sprintf("%s\n\n", $this->encode_file($path));
}
$mime[] = sprintf("\n--Boundary-=%s--\n", $this->boundary);
return(join("", $mime));
}
// Encode attachment in base64 format
function encode_file ($path) {
if(!$fd = fopen($path, "r"))
$this->error_handler("File Error: Could not open file %s", $path);
$file = fread($fd, filesize($path));
// chunk_split is found in PHP >= 3.0.6
$encoded = chunk_split(base64_encode($file));
fclose($fd);
return($encoded);
}
Игорь_Vasinsky
27.11.2013 - 11:38
Цитата |
Игорь, в phpmailer есть аттачи |
я и не спорил)
где они у тебя?
$mail = new phpmailer();
$mail->AddAddress("info@cargobroker.ru", "info@cargobroker.ru");
$mail->AddReplyTo("info@cargobroker.ru", "noreply@cargobroker.ru");
$mail->From = "info@cargobroker.ru";
$mail->FromName = "Калькулятор по страхованию речных судов";
$mail->Subject = "Расчет калькулятора";
$mail->IsHTML(true);
$mail->CharSet = "utf-8";
$mail->Body = "\n\r\n\r".$table;
$mail->Send();
header("Location: ./?ok");
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
27.11.2013 - 12:29
Цитата |
не могу найти как прикрепить файл |
попытки прикрепить файлы
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
вот попытка
$mail = new phpmailer();
$mail->AddAddress("info@cargobroker.ru", "info@cargobroker.ru");
$mail->AddReplyTo("info@cargobroker.ru", "noreply@cargobroker.ru");
$mail->From = "info@cargobroker.ru";
$mail->FromName = "Калькулятор по страхованию речных судов";
$mail->Subject = "Расчет калькулятора";
$mail->IsHTML(true);
$mail->CharSet = "utf-8";
$mail->Body = "\n\r\n\r".$table;
$mail->Send();
if($_FILES['file']['error'] === 0)
{
$ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
$mail -> attacheFile($_FILES['file']['tmp_name'], $_FILES['file']['name']);
}
header("Location: ./?ok");
Игорь_Vasinsky
27.11.2013 - 13:17
а как это реализовано в примере выше видишь?
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
asstral
27.11.2013 - 13:19
Предлагаю метод с указанием ссылок на скачивания файлов.
Возможно получиться:
Создаем папку "files" в главной директории. Путь получится такой -
http://marine.cargobroker.ru/files/В форму, где находятся поля для заполнения,заменяем строку:
<form class="vertical total_form" method="post" action="send.php">
на
<form enctype="multipart/form-data" class="vertical total_form" method="post" action="send.php">
Выберете 1-н или несколько файлов<br />
<input type="file" min="1" max="50" name="file[]" multiple="true" size="100" style="cursor: pointer" />
Ну и дополняем файл send.php:
<?
$ms='';
$exit=true;
$i=0;
while ($exit){
if(!empty($_FILES['file']['tmp_name'][$i])) {
$tmp_name = $_FILES['file']['tmp_name'][$i];
move_uploaded_file($tmp_name, '/files/');
$ms.='Файл номер '.$i.'. <a href="http://marine.cargobroker.ru/files/'.$tmp_name.'">Ссылка</a>';
} else {exit=false;}
$i++;
}
require("mailer/phpmailer.inc.php");
$table = "<table border='1' cellpadding='6' cellspacing='0'>";
foreach($_REQUEST["data"] as $key => $data) {
if(strlen($key) > 2) {
$table .= "<tr><th colspan='2' align='left'>".$key." </th></tr>";
foreach($data as $f => $v) {
if(strlen($f) > 0) {
if(strlen($f) <= 2) {
$f = "Опция";
}
if(trim($v) == "") {
continue;
}
$table .= "<tr><td>".$f." </td><td>".$v." </td></tr>";
}
}
}
}
$table .= "</table>";
$table.='Ссылки на файлы:<br />'.$ms;
$mail = new phpmailer();
$mail->AddAddress("info@cargobroker.ru", "info@cargobroker.ru");
$mail->AddReplyTo("info@cargobroker.ru", "noreply@cargobroker.ru");
$mail->From = "info@cargobroker.ru";
$mail->FromName = "Калькулятор по страхованию речных судов";
$mail->Subject = "Расчет калькулятора";
$mail->IsHTML(true);
$mail->CharSet = "utf-8";
$mail->Body = "\n\r\n\r".$table;
$mail->Send();
header("Location: ./?ok");
?>
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.