Я делаю php-форму в wordpress. Я хотел бы добавить блокнот или файл PDF вдоль этой формы. Я получаю все это в электронной почте, используя функцию почты в переменной body, например
$body =" Attachment: $Attachmentfile";
Вместо файла я получаю имя файла, которое пользователь загружает вместо файла. Я пытаюсь получить файл по электронной почте. Обычно я тоже учусь, как это сделать.
Мой PHP-код для назначения htm-файла тега,
if(trim($_POST['Attachmentfile']) === '') { $AttachmentfileError = 'Please enter a Pdf, Notepad or Word file.'; $hasError = true; } else { if($_FILES["Attachmentfile"]["name"] != "") { $strFilesName = $_FILES["Attachmentfile"]["name"]; $strContent = chunk_split(base64_encode(file_get_contents($_FILES["Attachmentfile"]["tmp_name"]))); $strHeader .= "--".$strSid."\n"; $strHeader .= "Content-Type: application/octet-stream; name=\"".$strFilesName."\"\n"; $strHeader .= "Content-Transfer-Encoding: base64\n"; $strHeader .= "Content-Disposition: attachment; filename=\"".$strFilesName."\"\n\n"; $strHeader .= $strContent."\n\n"; } else { $Attachmentfile = trim($_POST['Attachmentfile']); } }
и мой Html-код для получения файла,
<li class="left"> <label for="CV">Attachments :</label><span class="error">*</span><br> <input class="txt" type="file" name="Attachmentfile" id="Attachmentfile" value="<?php if(isset($_POST['Attachmentfile'])) echo $_POST['Attachmentfile'];?>"> </li>
и это мой код функции почты,
$headers = 'From: '.$name.' <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email; $headers .= "\r\n" . 'Content-type: text/html'; wp_mail($emailTo, $subject, $body, $headers); $emailSent = true;
по$headers = 'From: '.$name.' <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email; $headers .= "\r\n" . 'Content-type: text/html'; wp_mail($emailTo, $subject, $body, $headers); $emailSent = true;
Можете ли вы помочь и изменить мой код, чтобы получить файл в электронной почте. Спасибо друзьям.
function property_add() { $data = $_POST['data']; $data = array_map('trim',$data); extract($data); $to = "reciever mail here "; $subject = "subject here"; $message ='Message here'; $attachments = array(); // initialize attachment array $upload_dir = wp_upload_dir(); // look for this function in wordpress documentation at codex $upload_dir = $upload_dir['path']; foreach ($_FILES["images"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["images"]["tmp_name"][$key]; // Get temp name of uploaded file $name = time().'_'.$_FILES["images"]["name"][$key]; // rename it to whatever move_uploaded_file($tmp_name, "$upload_dir/$name"); // move file to new location $attachments[] = "$upload_dir/$name"; // push the new uploaded file in attachment array } } add_filter( 'wp_mail_content_type', 'set_html_content_type' ); // allow html tags in mail if(wp_mail($to, $subject, $message,'',$attachments)) { echo "any success message>"; } else { echo "failure message "; } remove_filter( 'wp_mail_content_type', 'set_html_content_type' ); // remove filter to avoid conflicts if(!empty($attachments)) { foreach($attachments as $attachment) { @unlink($attachment); // delete files after sending them } } }
это выдержка из одного из моих проектов .. измените его в соответствии с вашими потребностями, я написал комментарий, чтобы вам стало лучше.
вызов этой функции в форме submit