Прикрепить файл в форме почты. (php formmail) - PullRequest
0 голосов
/ 19 февраля 2009

Я пишу mailform i php для размещения заказов, и я чувствую, что они должны отправить мне картинку для правильной работы заказа, я хотел бы иметь возможность прикрепить файл в форме почты. Как мне это сделать? Я видел несколько разных решений, но я их полностью не понимаю.

Ответы [ 3 ]

2 голосов
/ 19 февраля 2009

Вам необходимо установить правильные заголовки почты, а затем прикрепить файл, закодировав его в любую форму, которую вы объявили в заголовке, как в следующем фрагменте:

Все, что вам нужно сделать здесь, это прочитать файл и закодировать его (в нашем случае base64)

$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
fclose($file);

$data = chunk_split(base64_encode($data)); 

сначала вам понадобится граница, как правило, чтобы указать, где одна часть останавливается, а другая начинается

$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

затем установите заголовки вправо, чтобы поддержать вложение

$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";

затем создайте свое сообщение

$email_message .= "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" . // start text block
"Content-Type:text/html; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$email_content . "\n\n" .
"--{$mime_boundary}\n" . // start attachement
"Content-Type: {$fileatt_type};\n" .
" name=\"{$fileatt_name}\"\n" .
//"Content-Disposition: attachment;\n" .
//" filename=\"{$fileatt_name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n" . // this is the file...
"--{$mime_boundary}\n";  

, а затем ... отправил сообщение по почте; -)

mail($email_to, $email_subject, $email_message, $headers)
0 голосов
/ 05 февраля 2010

$ sl = "выбрать max (id) AS maxid из фотографий"; $ Рез = mysql_query ($ SL); $ Rowl = @ mysql_fetch_array ($ Рез);

$ AdID = $ rowl [ 'maxid']; $ Filedir = "/ photo_gallery /"; $ File1 = $ filedir "IMG" $ AdID $ _ FILES [ 'MyFile'] [ 'имя'];...

// echo $ file1; @move_uploaded_file ($ _ FILES [ 'MyFile'] [ 'tmp_name'], $ file1);

$ upd = "обновить набор фотографий photo = '". $ File1. "', Added_date = now () где id = $ adid";

// echo $ upd; mysql_query ($ обн);

@ Unlink ($ file1);

0 голосов
/ 24 февраля 2009

Я бы также предложил php_mailer http://sourceforge.net/project/showfiles.php?group_id=26031

Имеет все опции, которые вы когда-либо могли захотеть, и позволяет создавать формы произвольной длины без особых проблем с "TOO".

Есть также куча учебников, и я с удовольствием пошлю вам пример проекта, который я недавно сделал, если хотите

...