1

我不是这方面的专家,所以请原谅我提出这样一个(可能)愚蠢的问题。

我需要帮助设置(在 html 页面上)一种方法,允许访问者浏览到他们计算机上的文件(实际上是 2 个文件),当他们选择提交时,该文件将附加到 PHP 邮件表单。

我知道对于 PHP 邮件图像,我需要使用 PearMime 或 PHPMailer 之类的东西。

*更新*

好的,现在我知道如何放置 HTML 表单来获取文件了。当我使用以下 PHP 时,我做错了什么?我有 2 个通过 ID 从 HTML 页面请求的文件(HTML 正确创建了两个文件),即 PHPMailer_5.2.1 的位置,$mail->MsgHTML(file_get_contents('testfiles.html')); 实际上正在查看我在该位置创建的一个 html 页面,该页面只有一个 html 文档的模板启动器,正文中带有 Sample 一词。

<?php

require("PHPMailer_5.2.1/class.phpmailer.php");

$mail = new PHPMailer(); //defaults to using php "mail()"; the true param means it will throw exceptions on errors, which we need to catch


$file1 = $_REQUEST['file1'];
$file2 = $_REQUEST['file2'];

try {
  $mail->AddReplyTo('myemail@domain.com', 'FirstName LastName');
  $mail->AddAddress('myemail@domain.com', 'FirstName LastName');
  $mail->SetFrom('myemail@domain.com', 'FirstName LastName');
  $mail->AddReplyTo('myemail@domain.com', 'FirstName LastName');
  $mail->Subject = 'PHPMailer Test Subject via mail(), advanced';
  $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
  $mail->MsgHTML(file_get_contents('testfiles.html'));
  $mail->AddAttachment($file1);      // attachment
  $mail->AddAttachment($file2); // attachment
  $mail->Send();
  echo "Message Sent OK</p>\n";
} catch (phpmailerException $e) {
  echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
  echo $e->getMessage(); //Boring error messages from anything else!
}


?>
4

1 回答 1

1

您正在寻找 HTML 属性?

<form action="upload_file.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />

在您的标签中非常重要,enctype="multipart/form-data否则将不允许附加图像。然后您的 PHP 脚本应根据需要处理这些字段。祝你好运 :)

于 2012-07-27T20:52:34.607 回答