从列表中选择附件并使用php邮件发送

时间:2013-02-10 00:09:42

标签: php email

所有我试图让这个表单工作,但有一些问题,这是我的发件人脚本的一部分

       $mail->AddAttachment($_POST[file];);      // attachment

我有一个表单只是简单地从列表中的选项发布valuse并来到我的发件人脚本我将如何要求它找到文件名file1并将其作为附件添加到电子邮件中?,所以我可以选择列表中的file2 iot附加文件2文件3选择相同的原则。

任何想法

2 个答案:

答案 0 :(得分:0)

如果文件是在POST请求中上传的,那么您应该使用$ _FILES而不是$ _POST。 (确保文件上传表单具有属性enctype="multipart/form-data",否则文件上传将无效。)

请参阅:http://php.net/manual/en/reserved.variables.files.php

如果您在请求中上传了许多文件,则可以使用变量获取这些文件:$_FILES['file1']$_FILES['file2'],...

如果您需要在电子邮件中附加上传的文件,您应该使用该文件的tmp_name(它是您服务器上文件所在的临时本地化),所以您得到:

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

您还可以检查文件是否已成功上传。 $_FILES['file1']['error']的值应为0.如果不是,请参阅此处:http://www.php.net/manual/en/features.file-upload.errors.php

答案 1 :(得分:0)

我假设您正在尝试完成多个文件选择并将它们附加到您的电子邮件中。你必须使用数组。将文件输入名称命名为

<input name="attachment[]" type="file" multiple="true">

然后使用foreach循环

foreach ($attachment['error'] as $key => $error) {
        if ($error == UPLOAD_ERR_OK) {
           // Your code goes here.
        }
    }