我正在尝试制作一个带有作为附件发送的文件上传行的表单。我收到了带有$ body的电子邮件,但没有任何附件我查看了代码并在各地进行了研究,所以现在我在这里,有什么建议吗?
PHP代码
if ( isset( $_FILES['upload'] ) && $_FILES['upload']['error'] == UPLOAD_ERR_OK ) {
$mail->IsHTML(true);
$mail->AddAttachment( $_FILES['upload']['tmp_name'], $_FILES['upload']['name'] );
}
HTML代码
<form action="include/contractor.php" method="post" enctype="multipart/form-data">
<label for="upload">File</label>
<input type="file" name="upload" id="upload" /></form>
答案 0 :(得分:0)
我只是将此文件上传到一个文件夹,并使用您的永久地址引用此文件。 使用服务器上的现有文件进行测试,如果解决了问题,请在发送前修改脚本以将文件保存到文件夹中。
答案 1 :(得分:0)
我喜欢子弹点,所以我会解决你的问题:
使用print_r($_FILES['upload']['error']);
检查上传错误代码以进行文件上传(您可能会感到惊讶)
阅读https://github.com/PHPMailer/PHPMailer/blob/master/examples/send_file_upload.phps获取指导。
有关安全文件上传的详细信息,请阅读http://php.net/manual/en/features.file-upload.php#114004。
作为一个说明我还会说,您的服务器系统(可能)可能已经限制了新上传的临时文件tmp_name
,他们的访问权限受到限制。因此,在附加到电子邮件发件人之前,请使用move_uploaded_file
将文件保存到“真实”目的地。
答案 2 :(得分:0)
对于初学者,您需要实际上有一种方法来上传要附加的文件,这将是您列出的一些单独的代码。例如,当您向Google邮件添加文件时,您必须自己上传文件。
如果没有看到其他代码,我就无法提供更明确的解决方案。