私はfucntions.phpファイルでフォームを作成して検証するショートコードを持っています。フォームが送信され、検証された後、データはSESSION変数に格納されます。 SESSION変数は、カスタムPHPテンプレートページに情報を運ぶために使用されます。このページは、wp_mail()を使用してフォームデータを電子メールで送信し、ありがとうございます。wp_mail() - 添付ファイルとしてフォームから 'file'入力タイプを送信する
私の問題は、フォームに画像アップロード用の「ファイル」入力タイプがあることです。私は正しく検証しましたが、アップロードされた画像を転送してwp_mail()関数の '$ attachments'としてメールで送信しています。
また、アップロードした画像をtempフォルダをSESSION変数に格納するのではなく、削除してからメールを送信してください。
私の質問はどのようなのですか?甘いバージョン:
のfunctions.php(ショート機能で)
<?php
$file = "";
$fileErr = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
//file upload is required, make sure its not empty
if(empty($_FILES['pmFile'])){
$fileErr = "This is required!";
}
else{
$file = $_FILES['pmFile'];//I validate here, but lets just say its OK
}
//If the error message is empty, store data in SESSION variables, and
//uploaded file in temp folder + redirect to thank you page
if(empty($fileErr)){
//HOW DO I SAVE THE FILE TEMPORARILY FOR USE ON THE NEXT PAGE???
wp_redirect('../wp-content/themes/rest of the path/thankYouPage.php');
exit();
}else{ /*display errors*/}
}
//down here is where I wrote the code for the form. YES method=post, YES I
//included enctype="multipart/form-data, YES the file input name is in fact
//'pmFile'.
?>
thankYouPage.php
//initial page stuff
//start email setup
$to = '[email protected]';
$email_from = '[email protected]';
$email_subject = "New Price Match Request";
$email_body = "I display the html and data here";
//for attachments
//HOW DO I PULL THAT UPLOADED FILE FROM THE TEMP FOLDER AND SEND IT AS AN ATTACHMENT?
$attachments = (the file in temp folder);
//NOW HOW TO I DELETE IT FROM THE TEMP FOLDER
$headers = "From: $email_from \r\n";
$headers .= "Reply-To: $email \r\n"; //$email is a SESSION variable pulled from before
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
//set to html
add_filter('wp_mail_content_type',create_function('', 'return "text/html"; '));
//send
wp_mail($to, $email_subject, $email_body, $headers, $attachments);
// Reset content-type to avoid conflicts
remove_filter('wp_mail_content_type', 'wpdocs_set_html_mail_content_type');
私はそれが取り除かコードの多くを知っているが、電子メールは、セッション変数によって転送される形で他のすべての情報のために動作します。私は実際にこのアップロードされたファイルを転送して電子メールで送る方法を知る必要があります。ありがとう!
良い答え、短くて甘い。私は実際にこれを試す途中です、指が交差しました。 –
あなたの答えは動作します!問題が発生するのはエラーです: "_Fileが空です。より大きなものをアップロードしてください。このエラーは、php.iniでアップロードが無効になっているか、post_max_sizeがupload_max_filesizeより小さいとphp.ini._ "私はphp.iniファイルを編集し、フォルダのアクセス権が正しいことを確認し、十分なハードディスク容量を確保しました。私はどこでも解決策を見つけることができません。 –