如何在从表单发送文件附件时使用phpMailer和PHP?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (67)

我有一个example.com/contact-us.php,看起来像这样(简化):

<form method="post" action="process.php" enctype="multipart/form-data">
  <input type="file" name="uploaded_file" id="uploaded_file" />
  <input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
</form>

在我的process.php文件中,我使用以下代码PHPMailer()发送电子邮件:

require("phpmailer.php");

$mail = new PHPMailer();

$mail->From     = me@example.com;
$mail->FromName = My name;
$mail->AddAddress(me@example.com,"John Doe");

$mail->WordWrap = 50;
$mail->IsHTML(true);

$mail->Subject  =  "Contact Form Submitted";
$mail->Body     =  "This is the body of the message.";

电子邮件正确发送正文,但没有附件uploaded_file

需要将uploaded_file表格中的文件附加到电子邮件中,然后发送。process.php脚本在电子邮件中发送文件后,不需要保存文件。

提问于
用户回答回答于

尝试:

if (isset($_FILES['uploaded_file']) &&
    $_FILES['uploaded_file']['error'] == UPLOAD_ERR_OK) {
    $mail->AddAttachment($_FILES['uploaded_file']['tmp_name'],
                         $_FILES['uploaded_file']['name']);
}

函数的定义AddAttachment

public function AddAttachment($path,
                              $name = '',
                              $encoding = 'base64',
                              $type = 'application/octet-stream')
用户回答回答于

文件无法从客户端PC上载(上传)

在HTML表单中我没有添加下面的行,所以没有附件:

enctype="multipart/form-data"

在form上添加上面的行(如下)后

<form id="form1" name="form1" method="post" action="form_phpm_mailer.php"  enctype="multipart/form-data">

扫码关注云+社区

领取腾讯云代金券