gpt4 book ai didi

php - phpMailer 中的附件

转载 作者:可可西里 更新时间:2023-10-31 23:37:28 24 4
gpt4 key购买 nike

我似乎无法弄清楚以下内容:

  • 如何使附件仅是特定文件(例如:仅可以附加一个 .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>

最佳答案

首先,将 View (

1) 在处理中,给文件名加上条件

if (preg_match("/\\.jpg$/",$_FILES["uploaded_file"]["name"]))
{
//OK
}
else
{
//KO, redirect to error page
}

2) 不能在这里测试,但我想文件也可能有一个“大小”属性

3) 检查发送

if ($mail->send())
{
unlink($_FILES["uploaded_file"]["name"]);
}
else
{
//KO, log to debug file
}

编辑:代码整合

view.php(方便重命名)

<div class="white-jumbotron">
<div class="container">

<form action="" method="post" action="val_mail.php" 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>

val_mail.php(方便重命名,但与上面的表单action属性匹配)

<?php
if(isset($_POST['submit'])) {
if (!preg_match("/\\.jpg$/",$_FILES["uploaded_file"]["name"]))
{
echo'<script> window.location="../error-attachment.php"; </script> '; exit;// create error page
}
$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"]);
if ($mail->Send())
{
unlink($_FILES["uploaded_file"]["name"]);
}
else
{
echo'<script> window.location="../error-sent.php"; </script> '; exit;// create error page
}

echo'<script> window.location="../careers-sent.php"; </script> ';
}
?>

关于php - phpMailer 中的附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39971359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com