使用phpMailer和PHP从表单发送文件附件

使用phpMailer和PHP从表单发送文件附件

我有张表格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脚本是通过电子邮件发送的。

我知道我需要补充AddAttachment();在某个地方(我假设在Body(行)发送附件。但是.。

  1. 我把什么放在顶部

    process.php

    文件要拉进文件

    uploaded_file

    ?就像某种东西

    $_FILES['uploaded_file']

    从Contact-us.php页面中提取文件?
  2. 里面有什么

    AddAttachment();

    对于随电子邮件一起附上和发送的文件,这段代码需要去哪里?

请帮助并提供密码!谢谢!


交互式爱情
浏览 555回答 3
3回答

米脂

试着:if&nbsp;(isset($_FILES['uploaded_file'])&nbsp;&& &nbsp;&nbsp;&nbsp;&nbsp;$_FILES['uploaded_file']['error']&nbsp;==&nbsp;UPLOAD_ERR_OK)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;$mail->AddAttachment($_FILES['uploaded_file']['tmp_name'], &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$_FILES['uploaded_file']['name']);}也可以找到基本的示例。这里.函数定义AddAttachment是:public&nbsp;function&nbsp;AddAttachment($path, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$name&nbsp;=&nbsp;'', &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$encoding&nbsp;=&nbsp;'base64', &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$type&nbsp;=&nbsp;'application/octet-stream')

牛魔王的故事

无法从客户端PC附加文件(上传)在HTML表单中,我没有添加以下行,因此没有附件:enctype=“多部分/表格-数据”在添加上线后(如下所示),附件变得非常完美。<form&nbsp;id="form1"&nbsp;name="form1"&nbsp;method="post"&nbsp;action="form_phpm_mailer.php"&nbsp;&nbsp;enctype="multipart/form-data">

慕森卡

你会用$_FILES['uploaded_file']['tmp_name'],这是PHP存储上传文件的路径(它是一个临时文件,在脚本结束时由PHP自动删除,除非您已将其移动/复制到其他地方)。假设你的客户端表单和服务器端上传设置是正确的,你没有什么需要做的“拉”上传。它将在tmp_name路径中神奇地可用。请注意,您必须验证上传是否确实成功。if&nbsp;($_FILES['uploaded_file']['error']&nbsp;===&nbsp;UPLOAD_ERR_OK)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;...&nbsp;attach&nbsp;file&nbsp;to&nbsp;email&nbsp;...}否则,您可能尝试使用损坏/部分/不存在的文件执行附件。
打开App,查看更多内容
随时随地看视频慕课网APP