Précédent   Forum du club des développeurs et IT Pro > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 02/12/2012, 08h56   #1
dscludo
Invité de passage
 
Homme
Webmaster
Inscription : 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
     } 
?>
dscludo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2012, 16h10   #2
Celira
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 4 335
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 28
Localisation : France

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

Informations forums :
Inscription : avril 2007
Messages : 4 335
Points : 8 500
Points : 8 500
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]
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2012, 22h32   #3
ABCIWEB
Expert Confirmé
 
Homme Alain
Inscription : septembre 2010
Messages : 1 926
Détails du profil
Informations personnelles :
Nom : Homme Alain
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : septembre 2010
Messages : 1 926
Points : 2 866
Points : 2 866
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.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 04h33.


 
 
 
 
Partenaires

Hébergement Web