IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Mauvais format de la pièce jointe


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    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 : 3
    Points
    3
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    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)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

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

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 382
    Points : 10 410
    Points
    10 410
    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

Discussions similaires

  1. [javamail]format pièce jointe
    Par <romain/> dans le forum API standards et tierces
    Réponses: 12
    Dernier message: 09/12/2009, 16h04
  2. Réponses: 6
    Dernier message: 13/05/2009, 12h55
  3. Générer des mail avec pièce jointe au format PDF
    Par Michel DELAVAL dans le forum Access
    Réponses: 2
    Dernier message: 26/06/2006, 15h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo