1

我正在尝试通过联系表格发送一些文件。但是,我有两个问题。

首先:文件到达时没有格式,例如:phpjL9y80

第二:我不知道 PHPMailer 是否有一个函数或类似的东西来过滤扩展,因为我只需要 .doc、.docx 和 .pdf 文件。

有人能帮助我吗?

$mail->AddAttachment($_FILES['file']['tmp_name']);
4

1 回答 1

1

将您上传的文件移动到服务器中的某个位置。然后附上它。

move_uploaded_file($_FILES["file"]["tmp_name"],"/path/to/directory/". $_FILES["file"]["name"]);

要过滤它,也许 PHPMailer 没有什么可做的。但是,你可以使用这个:

$allowedExts = array("doc", "docx", "pdf");
$extension = end(explode(".", $_FILES["file"]["name"]));

if (in_array($extension, $allowedExts))
{
    $mail->AddAttachment("/path/to/directory/". $_FILES["file"]["name"]);
}

要在发送电子邮件后删除该文件,只需取消链接即可。

unlink("/path/to/directory/". $_FILES["file"]["name"]);

希望这可以帮助。

于 2013-05-29T19:13:38.180 回答