如何在wordpress中将文件上载到自定义文件夹并将附件发送到电子邮件

如何在wordpress中将文件上载到自定义文件夹并将附件发送到电子邮件,wordpress,email,file-upload,attachment,Wordpress,Email,File Upload,Attachment,我在上传和发送附件时遇到了一些理解上的问题。 例如: $zip_code = $_POST['zip_code']; $phone = $_POST['phone']; $email = $_POST['email']; $attachments = ''; if (!empty($_FILES['attachment']['tmp_name'])) { $path = $_FILES['attachment']['name']; if (copy($_FILES['attach

我在上传和发送附件时遇到了一些理解上的问题。 例如:

$zip_code = $_POST['zip_code'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$attachments = '';
if (!empty($_FILES['attachment']['tmp_name'])) {
    $path = $_FILES['attachment']['name'];
    if (copy($_FILES['attachment']['tmp_name'], $path)) $attachments = $path;
}

$subject = 'You have message from ' . get_bloginfo('name');
$message = '<table width="100%" cellspacing="0" cellpadding="5" border="0">';
$message .= '<tr><td width="150px"><b>Zip Code:</b></td><td>' . $zip_code . '</td></tr>';
$message .= '<tr><td width="150px"><b>Phone:</b></td><td>' . $phone . '</td></tr>';
$message .= '<tr><td width="150px"><b>Email:</b></td><td>' . $email . '</td></tr>';
$message .= '<tr><td width="150px"><b>Attachments:</b></td><td>' . $attachments . '</td></tr>';
$message .= '</table>';
//php mailer variables
$to = get_option('admin_email');
$headers = 'From: ' . $email . "\r\n" . 'Reply-To: ' . $email . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= "Content-Disposition: attachment; filename = \"" . $attachments . "\"\n\n";
$sent = wp_mail($to, $subject, $message, $headers, $attachments);
$zip\u code=$\u POST['zip\u code'];
$phone=$_POST['phone'];
$email=$_POST['email'];
$attachments='';
如果(!空($\u文件['attachment']['tmp\u name'])){
$path=$\u文件['attachment']['name'];
如果(复制($_文件['attachment']['tmp_名称'],$path))$attachments=$path;
}
$subject='您有来自的消息'。获取博客信息(“名称”);
$message='';
$message.='邮政编码:'$邮政编码;
$message.=“电话:”$电话;
$message.=“电子邮件:”$电邮";;
$message.='附件:'$附件";;
$message.='';
//php邮件程序变量
$to=get_选项(“管理电子邮件”);
$headers='From:'$电子邮件。“\r\n”。”答复:"$电子邮件。“\r\n”;
$headers.=“MIME版本:1.0\r\n”;
$headers.=“内容类型:text/html;字符集=ISO-8859-1\r\n”;
$headers.=“内容处置:附件;文件名=\”.$attachments.\“\n\n”;
$sent=wp_mail($to、$subject、$message、$headers、$attachments);
此代码工作不正常。电子邮件和附件发送正确,但文件上载在根目录中。当我上传相同的文件时,新文件会覆盖旧文件。我不明白如何在文件名中添加一些哈希标记

也许你能帮我?任何想法或我可以阅读如何解决这个问题


谢谢

什么不起作用?要帮助您找出哪些不起作用,请尝试以下操作:

$zip_code = $_POST['zip_code'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$attachments = '';
if (!empty($_FILES['attachment']['tmp_name'])) {
    $path = $_FILES['attachment']['name'];
    if (copy($_FILES['attachment']['tmp_name'], $path)) $attachments = $path;
}

$subject = 'You have message from ' . get_bloginfo('name');
$message = '<table width="100%" cellspacing="0" cellpadding="5" border="0">';
$message .= '<tr><td width="150px"><b>Zip Code:</b></td><td>' . $zip_code . '</td></tr>';
$message .= '<tr><td width="150px"><b>Phone:</b></td><td>' . $phone . '</td></tr>';
$message .= '<tr><td width="150px"><b>Email:</b></td><td>' . $email . '</td></tr>';
$message .= '<tr><td width="150px"><b>Attachments:</b></td><td>' . $attachments . '</td></tr>';
$message .= '</table>';
//php mailer variables
$to = get_option('admin_email');
$headers = 'From: ' . $email . "\r\n" . 'Reply-To: ' . $email . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= "Content-Disposition: attachment; filename = \"" . $attachments . "\"\n\n";

echo 'Headers:  . $headers . '<br>/r/n';
echo 'To: ' . $to .'<br>/r/n';
echo 'Subject: ' . $subject . '<br>/r/n';
echo 'Message: ' . $message . '<br>/r/n';
echo 'Image: <img src="' . $attachments .'" />';


// $sent = wp_mail($to, $subject, $message, $headers, $attachments);
$zip\u code=$\u POST['zip\u code'];
$phone=$_POST['phone'];
$email=$_POST['email'];
$attachments='';
如果(!空($\u文件['attachment']['tmp\u name'])){
$path=$\u文件['attachment']['name'];
如果(复制($_文件['attachment']['tmp_名称'],$path))$attachments=$path;
}
$subject='您有来自的消息'。获取博客信息(“名称”);
$message='';
$message.='邮政编码:'$邮政编码;
$message.=“电话:”$电话;
$message.=“电子邮件:”$电邮";;
$message.='附件:'$附件";;
$message.='';
//php邮件程序变量
$to=get_选项(“管理电子邮件”);
$headers='From:'$电子邮件。“\r\n”。”答复:"$电子邮件。“\r\n”;
$headers.=“MIME版本:1.0\r\n”;
$headers.=“内容类型:text/html;字符集=ISO-8859-1\r\n”;
$headers.=“内容处置:附件;文件名=\”.$attachments.\“\n\n”;
echo的标题:$标题。”
/r/n'; 回显“至:”$到“
/r/n”; 回显“主题:”$主题。”
/r/n'; 回显“消息:”$留言。”
/r/n'; 回声“图像:”; //$sent=wp_mail($to、$subject、$message、$headers、$attachments);

如果缺少任何内容,您将能够看到缺少的内容,并且可以通过这种方式更正代码。

Mm,电子邮件发送正常,但附件上载到根目录。我想在自定义文件夹中上传文件,如下图所示
wp content/upload/attachment/
,并在上传文件中添加一些散列标签,如
name_001.doc,name_002.pdf
etcTo要将文件上传到上传文件目录,请更改
$path=$\u FILES['attachment']['name']行到
$upload\u dir=wp\u upload\u dir()
$path=$upload\u dir['path']$_文件['attachment']['name']
若要在文件名中包含哈希,您需要一个函数来拆分原始文件的扩展名,并检查目录以查看当前所处的迭代,例如
name_017.pdf
,因此该函数需要添加一个,使新上载的文件名
name_018.pdf
。谢谢!你真的帮助了我。对于当前副本,我使用
$upload\u dir=wp\u upload\u dir()$path=$upload_dir['path']./'$_文件['attachment']['name']现在我尝试将哈希添加到文件名中