表单附件使用PHPmailer保存为.tmp文件

时间:2017-01-13 15:34:11

标签: php html file email phpmailer

我知道很多关于这方面的问题已经被问到关于phpmailer但是我找不到自己的解决方案。这是我的HTML表单:

 <div class="info">
 <form class="solliciteren" action="" method="post">
                            Naam
                            <input type="text" name="naam" value="">Telefoonnummer
                            <input type="text" name="telefoonnummer" value="">Email
                            <input type="email" name="emailid" value="">Leeftijd
                            <input type="number" name="leeftijd" value="">Upload uw CV
                            <input type="file" name="uploaded_file" value="CV">
                            <input type="submit" name="verzenden" value="Verzenden">
                        </form> 

当我使用我的PHP代码时,它会将所有内容发送到我的Gmail帐户,但问题是如果我发送文件它会显示有文件发送但我无法打开或下载它在Gmail中因为它保存为.tmp文件。这是我的PHP代码:

<?php
              if(isset($_POST['verzenden']))
              {

              $message=
              'naam:    '.$_POST['naam'].'<br />
              telefoonnummer:   '.$_POST['telefoonnummer'].'<br />
              email:    '.$_POST['emailid'].'<br />
              leeftijd: '.$_POST['leeftijd'].'<br />
              upload:   '.$_POST['uploaded_file'].'
              ';
                  require "phpmailer/class.phpmailer.php";
                  $mail = new PHPMailer();

                  $mail->IsSMTP();
                  $mail->SMTPAuth = true;
                  $mail->SMTPSecure = "ssl";
                  $mail->Host = "smtp.gmail.com";
                  $mail->Port = 465;
                  $mail->Encoding = '7bit';


                  $mail->Username   = "mygmailaccount@gmail.com";
                  $mail->Password   = "mygmailpassword";


                  $mail->SetFrom($_POST['emailid'], $_POST['naam']);
                  $mail->AddReplyTo($_POST['emailid'], $_POST['naam']);
                  $mail->Subject = "Nieuwe Sollicitatie!";
                  $mail->MsgHTML($message);

                  $mail->AddAddress("mygmailaccount@gmail.com", "my name");
                  $result = $mail->Send();
                    $message = $result ? 'Sollicitatie is ontvangen!' : 'Bericht is niet verstuurd! Probeer het opnieuw!';
                unset($mail);
              }
              ?>

我的精神 我希望人们在我的html表单中上传文件(.word / .txt / .jpg或其他任何内容),我可以在邮件发送到的Gmail帐户中打开/下载。现在的问题是它会显示一个文件已发送,但我无法打开或下载它,因为它被保存为.TMP文件。

1 个答案:

答案 0 :(得分:1)

除了附件中的文件路径外,还需要指定文件名。

示例:$mail->AddAttachment($_FILES['atachment']['tmp_name'], $_FILES['atachment']['name']);

如果您只做$mail->AddAttachment($_FILES['atachment']['tmp_name']);

然后,.tmp文件将作为附件发送。