Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Invité de passage
    Homme Profil pro
    Webmaster
    Inscrit en
    juin 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Services à domicile

    Informations forums :
    Inscription : juin 2012
    Messages : 5
    Points : 0
    Points
    0

    Par défaut Mauvais format de la pièce jointe

    j'ai un petit souci avec mes pièces jointe.
    Je reçois tout correctement à l'exception de ma pièce jointe qui n'est qu'un fichier texte au lieu d'avoir la pièce en attachement.
    Je précise que mon fichier récupéré par un formulaire est bien chargé dans mon dossier "uploads"
    voici mon code :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
    <?php
         //----------------------------------------------- 
         //PIECE JOINTE 
         //----------------------------------------------- 
    	 $uploaddir = '../uploads/';
    	 $upload_file = $uploaddir . $_FILES['Fichier']['name'];
     
    	 if (move_uploaded_file($_FILES['Fichier']['tmp_name'], $upload_file)) { 
            $ext = explode(".", basename($_FILES['Fichier']['name']));
     
            switch($ext[1]) { 
                default:       
                $attach_type =  "application/octet-stream";  
            break; 
                case "gz":    
                $attach_type =  "application/x-gzip";  
            break; 
                case "tgz":   
                $attach_type =  "application/x-gzip";  
            break; 
                case "zip":   
                $attach_type =  "application/zip"; 
            break; 
                case "pdf":   
                $attach_type =  "application/pdf"; 
            break; 
                case "png":   
                $attach_type =  "image/png"; 
            break; 
                case "gif":   
                $attach_type =  "image/gif"; 
            break; 
                case "jpg": 
                case"jpeg":   
                $attach_type =  "image/jpeg"; 
            break; 
                case "txt":   
                $attach_type =  "text/plain"; 
            break; 
                case "htm":   
                $attach_type =  "text/html";   
            break; 
                case "html":  
                $attach_type =  "text/html"; 
            break; 
            }
    	$attach_name = $_FILES["Fichier"]["name"]; 
        }
    	if (file_exists($upload_file)) { 
            $file = fopen($upload_file, "r"); 
            $contents = fread($file, filesize($upload_file)); 
            $encoded_attach = chunk_split(base64_encode($contents)); 
            fclose($file); 
         } 
    	 //----------------------------------------------- 
         //HEADERS DU MAIL 
         //----------------------------------------------- 
     
         $headers = 'From : <'.$EmailExpediteur.'>'."\n"; 
         $headers .= 'Return-Path: <inscription@massageavenue.fr>'."\n";
         $headers .= 'MIME-Version: 1.0'."\n"; 
         $headers .= 'Content-Type: multipart/mixed; boundary="'.$frontiere.'"'; 
    	 $headers .= "Content-transfer-encoding: 7BIT\n"; 
         $headers .= "X-attachments: $attach_name\n";
     
     
    			 $message .= $frontiere."\r\n";
    			 $message .= "Content-type: $attach_type; name=\"$attach_name\n";
    			 $message .= "Content-Length: " . filesize($upload_file) . "\n";
            	 $message .= "Content-transfer-Encoding: BASE64\n";
            	 $message .= "Content-Disposition: attachment; filename=\"$attach_name\"\n\n"; 
    			 $message .= "$encoded_attach\n"; 
            	 $message .= $frontiere."\r\n";
     
     
         if(mail($email_destinataire,$sujet,$message,$headers)) 
         { 
              echo 'Le mail a été envoyé';
    		  ?>
      		  <input type="submit" name="Validation" id="Validation" value="Retour à la page d'accueil" onclick="self.location.href =' ../index.php'"/>
      		  <?php 
         } 
         else 
         { 
              echo 'Le mail n\'a pu être envoyé'; 
    		  ?>
      		  <input type="submit" name="Validation" id="Validation" value="Retour au formulaire" onclick="self.location.href =' ../php/FormulaireInscription.php'"/>
      		  <?php
         } 
    ?>

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    avril 2007
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2007
    Messages : 5 197
    Points : 10 011
    Points
    10 011

    Par défaut

    Une structure switch c'est l'équivalent d'une succession de if/else if, le case default correspondant normalement au else, c'est-à-dire au cas valable lorsque tous les autres ont échoués, et se place en dernier.
    Sauf que toi, tu as mis le defaut en 1er. Du coup, au lieu d'une structure if/else if, tu commences par un if(true) Aucun chance donc de passer par les autres cas.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

    Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [CODEINLINE=php][/CODEINLINE]

  3. #3
    Expert Confirmé Sénior

    Homme Profil pro Alain Bontemps
    Développeur Web
    Inscrit en
    septembre 2010
    Messages
    2 648
    Détails du profil
    Informations personnelles :
    Nom : Homme Alain Bontemps
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : septembre 2010
    Messages : 2 648
    Points : 4 529
    Points
    4 529

    Par défaut

    A part cela je ne ne vois pas pourquoi tu télécharge le fichier dans un dossier si c'est seulement pour le mettre en pièce jointe dans un mail...
    Et pour déterminer le Content-type tu peux utiliser directement $_FILES['Fichier']['type'].

    Si le sujet t'intéresse tu peux regarder ce post
    - Réalisations
    - Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •