【发布时间】:2016-10-11 06:11:45
【问题描述】:
我似乎无法弄清楚以下内容:
- 如何使附加文件仅为特定文件(例如:仅 可以附加一个 .jpg 文件)。
- 限制文件大小
-
文件发送后,从服务器中删除
<div class="white-jumbotron"> <div class="container"> <form action="" method="post" enctype="multipart/form-data"> <div class="form-group"> <label for="name" class="col-sm-2 control-label">First Name</label> <div class="col-sm-10"> <input class="form-control" type="text" name="firstName" id="firstName" required /> <p class='text-danger'></p> </div> </div> <div class="form-group"> <label for="name" class="col-sm-2 control-label">Last Name</label> <div class="col-sm-10"> <input class="form-control" type="text" name="lastName" id="lastName" required /> <p class='text-danger'></p> </div> </div> <div class="form-group"> <label for="name" class="col-sm-2 control-label">Email</label> <div class="col-sm-10"> <input class="form-control" type="text" name="email" id="email" required /> <p class='text-danger'></p> </div> </div> <div class="form-group"> <label for="name" class="col-sm-2 control-label">Resume upload</label> <div class="col-sm-10"> <input type="file" name="uploaded_file" id="uploaded_file"> <br /> </div> </div> <div class="col-sm-10"> <input type="submit" name="submit" class="btn btn-green" /> </div> </form> <?php if(isset($_POST['submit'])) { $emailAddress = 'myemail@gmail.com'; require "class.phpmailer.php"; $msg = 'First Name:'.$_POST['firstName'].'<br /> Last name:'.$_POST['lastName'].'<br /> Email:'.$_POST['email'].'<br />'; move_uploaded_file($_FILES["uploaded_file"]["tmp_name"], $_FILES["uploaded_file"]["name"]); $mail = new PHPMailer(); $mail->IsMail(); $mail->AddReplyTo($_POST['email'], $_POST['name']); $mail->AddAddress($emailAddress); $mail->SetFrom($_POST['email'], $_POST['name']); $mail->Subject = "Subject"; $mail->MsgHTML($msg); $mail->AddAttachment( $_FILES["uploaded_file"]["name"]); $mail->Send(); echo'<script> window.location="../careers-sent.php"; </script> '; } ?> </div> </div>
【问题讨论】:
-
到目前为止您尝试过什么?满足你的三个标准?
-
小心在邮件中直接嵌入帖子变量——如果有人在
firstName字段中输入一大堆 HTML 代码,那么您将收到一封看起来与您完全不同的电子邮件重新期待。您应该对这些字段进行一些基本的完整性检查。 -
另外,如果您要做的只是在电子邮件中发送并丢弃它,您可能不需要移动上传的文件。如果您打算将文件保留在您的服务器上,您只需要使用
move_uploaded_file()。如果你不需要保留它,你可以在做AddAttachment()时简单地引用tmp_name。 -
最后,将 PHP 代码移动到程序的顶部,使其位于 HTML 代码之上。然后您将能够使用更好的重定向方法(即
header('Location:...')而不是 javascript 重定向)。
标签: php phpmailer attachment