首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用phpMailer和PHP从表单发送文件附件

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

Stack Overflow用户
提问于 2012-08-02 01:07:02
回答 8查看 215.6K关注 0票数 76

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

代码语言:javascript
复制
<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()发送电子邮件的代码:

代码语言:javascript
复制
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脚本通过电子邮件发送文件后,我并不关心是否保存该文件。

我知道我需要在某个地方(我假设在Body行下)添加AddAttachment();,以便发送附件。但是..。

  1. 我应该在process.php文件的顶部放什么东西来拉入文件uploaded_file?比如使用$_FILES['uploaded_file']从contact-us.php页面拉入文件?
  2. AddAttachment();中包含什么内容,以便将文件附加到电子邮件中并与电子邮件一起发送?这些代码需要放到哪里?

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

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-08-02 01:12:22

尝试:

代码语言:javascript
复制
if (isset($_FILES['uploaded_file']) &&
    $_FILES['uploaded_file']['error'] == UPLOAD_ERR_OK) {
    $mail->AddAttachment($_FILES['uploaded_file']['tmp_name'],
                         $_FILES['uploaded_file']['name']);
}

基本的例子也可以在here中找到。

AddAttachment的函数定义如下:

代码语言:javascript
复制
public function AddAttachment($path,
                              $name = '',
                              $encoding = 'base64',
                              $type = 'application/octet-stream')
票数 114
EN

Stack Overflow用户

发布于 2012-12-16 03:07:50

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

在HTML表单中,我没有添加以下行,因此没有附件:

Enctype=“多部分/表单数据”

在表单中添加上面的行(如下所示)后,附件变得完美。

代码语言:javascript
复制
<form id="form1" name="form1" method="post" action="form_phpm_mailer.php"  enctype="multipart/form-data">
票数 7
EN

Stack Overflow用户

发布于 2016-06-02 18:50:12

这段代码可以帮助我发送附件...

代码语言:javascript
复制
$mail->AddAttachment($_FILES['file']['tmp_name'], $_FILES['file']['name']);

更换您的AddAttachment(...)使用上述代码编写代码

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11764156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档