Limitation type et taille document

Résolu
debtech Messages postés 14 Statut Membre -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour quelqu'un pourrait il m'aider, un envoi de mail avec phpmailer qui fonctionne super bien mais j'aimerais mettre des conditions sur le type de document a télécharger (pdf,jpg) et aussi la taille qui n’excède pas 4MB. Je n'arrive a pas a le faire, merci de m'aider svp

 <form class="needs-validation" action="send_mail.php" method="post">
<div>
    <input type="file" name="attachmentFile" id="attachmentFile" class="form-control"  id="Input" placeholder="Joindre fichier" required>
<button type="submit" class="btn btn btn-danger btnAction">Soumettre</button>
</form>


$attachmentFile = $_FILES['attachmentFile']['tmp_name'];
$mail = new PHPMailer(true);
try {
    $mail->SMTPDebug = 0;  
    $mail->isSMTP(); 
    $mail->Host       = 'XXX'; 
    $mail->SMTPAuth   = true;  
    $mail->AuthType = "PLAIN";
    $mail->Username   = 'XXX';   
    $mail->Password   = 'XXX';  
    $mail->SMTPSecure = 'tls';  
    $mail->Port       = '587'; 
    $mail->setFrom("$email");
    $mail->addAddress('xxx@gmail.com');
    $mail->isHTML(true);    
    $mail->Subject = "document";
    $mail->Body    = $attachmentFile ;
    $mail->send();
    echo 'document envoyé avec succès. Merci!';
}   
catch (Exception $e) {
    echo "document non envoyé, veuillez réessayer.";
}

1 réponse

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, qu'as-tu essayé?
    0
    1. debtech Messages postés 14 Statut Membre
       
      en cherchant un peu j'ai pu faire ceci, et ca marche. merci

      <?php
          require('../phpmailerCommande/class.phpmailer.php');
      
          $attachmentFile = $_FILES['attachmentFile']['tmp_name'];
      
          if(isset($_FILES['attachmentFile'])) {
              $errors     = array();
              $maxsize    = 2097152;
              $acceptable = array(
                  'application/pdf',
                  'application/msword',
                  'image/jpeg',
                  'image/jpg',
                  'image/gif',
                  'image/png'
              );    
              if(($_FILES['attachmentFile']['size'] >= $maxsize) || ($_FILES["attachmentFile"]["size"] == 0)) {
                  $errors[] = 'File too large. File must be less than 2 megabytes.';
              }   
              if((!in_array($_FILES['attachmentFile']['type'], $acceptable)) && (!empty($_FILES["attachmentFile"]["type"]))) {
                  $errors[] = 'Invalide type de fichier. Type de fichier téléchargeable : PDF, JPG, GIF, DOC.';
              }
          
              if(count($errors) === 0) {
                                          $mail = new PHPMailer(true);
      
                                          try {
                                              $mail->SMTPDebug = 0;  
                                              $mail->isSMTP(); 
                                              $mail->Host       = 'xxxx'; 
                                              $mail->SMTPAuth   = true;  
                                              $mail->AuthType = "PLAIN";
                                              $mail->Username   = 'xxx';   
                                              $mail->Password   = 'xxx';  
                                              $mail->SMTPSecure = 'tls';  
                                              $mail->Port       = '587'; 
      
                                              $mail->setFrom("$email");
                                              $mail->addAddress('xxx@gmail.com');
      
                                              $mail->isHTML(true); 
                                              $mail->Subject = "$objet";
                                              $mail->Body    = $attachmentFile;
                                              
                                              $mail->AddAttachment($attachmentFile, 'demo'); 
      
                                              $mail->send();
                                              echo 'Fichier envoyé, Merci!';
                                          }   
                                          catch (Exception $e) {
                                              echo "Fichier non envoyé, veuillez réessayer.";
                                          }
              } else {
                  foreach($errors as $error) {
                      echo '<script>alert("'.$error.'");</script>';
                  }
          
                  die(); //Ensure no more processing is done
              }
          }
      
      
      ?>
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > debtech Messages postés 14 Statut Membre
         
        parfait! peux-tu alors marquer le sujet comme résolu?
        0