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 :

Upload de plusieurs fichiers a partir d'un formulaire


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 16
    Points : 6
    Points
    6
    Par défaut Upload de plusieurs fichiers a partir d'un formulaire
    Bonjour a tous,

    j'ai un petit soucis, je dois réaliser un formulaire où l'on doit envoyer plusieurs fichiers, pour le moment, 2 images et 1 pdf.

    Mais j'essaye déjà de le faire avec 2 photos mais ça ne fonctionne pas. Je n'y connais quasi rien en PHP, juste html et CSS mais le code PHP que j'ai, a été réalisé par un ami. Pour une photo le code fonctionne bien mais quand je rajoute une autre, ça ne passe pas.

    Pouvez-vous m'aider ?

    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
    <form method="post" action="formulaire.php" enctype="multipart/form-data">
                        <fieldset><legend>Coordonn&eacute;es</legend>
                        <p>
                            <table width="700px">
                                <tr class="large">
                                    <td>
                                        <label for="société">Soci&eacute;t&eacute; : </label>
                                        <input type="text" name="société" size="11px" class="zone" />
                                    </td>
                                    <td>
                                        <label for="nom">Nom : </label>
                                        <input type="text" name="nom" size="11px" class="zone" />
                                    </td>
                                    <td>
                                        <label for="fonction">Fonction : </label>
                                        <input type="text" name="fonction" size="11px" class="zone" />
                                       </td>
                                </tr>
     
                                <tr>
                                    <td>
                                        <input type="file" name="upload"/>
                                    </td>
                                    <td>
                                        <input type="file" name="upload" />
                                      </td>
                                </tr>
                            </table>
                        </p>
                        </fieldset>
     
                        <div id="boutonformul"><input type="submit" value="Envoyer" /><input type="reset" value="remise a zero" /></div>
     
                    </form>
    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
    <?php 
     
    foreach ($_POST as $var => $value) { 
    $message.="$var = $value<br>\n"; 
     
    } 
     
    $tmp = $_FILES['upload']['tmp_name'];
    $sep = md5(time());
    $filename = $_FILES['upload']['name'];
     
    $filedata = file_get_contents($tmp);
    $fdata = chunk_split(base64_encode($filedata)); 
     
    $to = "philevrard761@msn.com";
     
    $ext = explode('.', $filename);
    $ext = $ext[1];
     
    if($ext == "JPG" || $ext == "jpg" || $ext == "JPEG" || $ext == "jpeg") {
    $mime_type = "image/jpeg";
    }
    elseif($ext == "gif" || $ext == "GIF") {
    $mime_type = "image/gif";
    }
    elseif($ext == "png" || $ext == "PNG") {
    $mime_type = "image/png";
    }
    else {
    exit("Error: Wrong file type!");
    }
     
    $headers = "From: \"From Name\" <{$to}>
    MIME-Version: 1.0
    Content-Type: Multipart/Mixed;
      boundary=\"$sep\"
    
    charset=\"iso-8859-1\"
    Content-Transfer-Encoding: 7bit
    
    --$sep
    Content-Type: $mime_type;
      name=\"$filename\"
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment;
            filename=\"$filename\"
    
    $fdata
    --$sep";
     
     
     
    $subject = "reponse Win Win";
    mail($to, $subject, $message, $headers);
    header ("Location: merci.php");
     
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourrais-tu être plus précis que "ca ne passe pas, ca ne fonctionne pas" ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Oui, en faite, quand j'utilise le formulaire avec 1 champs "file", il envoie correctement sur mon adresse email le formulaire avec la photo en pièce jointe.

    Maintenant, j'essaye d'avoir 2 champs "file", pour envoyer 2 photo en pièce jointe sur mon mail. C'est a ce niveau que je n'y arrive pas, il ne veut pas m'envoyer les 2 photos, il en envoie qu'une des deux.

    J'espère que j'ai réussis a me faire comprendre.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tes deux champs ont le même "name" donc le deuxieme écrase le premier.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    oki, j'avais essayer aussi, j'ai mis 2 nom différents.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <tr>
           <td>
                  <input type="file" name="upload"/>
           </td>
           <td>
                  <input type="file" name="upload2"/>
    </tr>
    Puis après dans mon php, j'ai essayer de les envoyer les 2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $tmp = $_FILES['upload','upload2']['tmp_name'];
    $sep = md5(time());
    $filename = $_FILES['upload','upload2']['name'];
    ...
    J'ai juste mis une partie de mon code qui se trouve en haut mais j'ai teste ça. SVP ne me parlé pas comme si je savais quelque chose en php, mon boss ma demander un formulaire comme ça, il ma rajouter des champs "file", je dois faire avec et doit réussir, c'est pour cela que je suis ici pour que l'on m'aide a trouver une solution et que ça fonctionne.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut faire ton traitement une fois avec $_FILES['upload']['tmp_name'] et une fois avec $_FILES['upload2']['tmp_name'].

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    oki, mais je l'écris comment dans mon code php ?
    Je viens d'essayer comme ça mais ça ne fonctionne toujours pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $tmp = $_FILES['upload']['tmp_name'];
    $tmp = $_FILES['upload2']['tmp_name'];
    $sep = md5(time());
    $filename = $_FILES['upload']['name'];
    $filename = $_FILES['upload2']['name'];

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Non tout le traitement avec le premier fichier et tout le traitement avec le deuxième.

    Je suppose que même si tu connais pas le PHP, tu as quand même le minimum de connaissance d'à peu pres n'importe quel langage de programmation.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Je suis graphiste, dans mes études, on m'a appris a crée des affiches, des logos,... et c'est tout. J'ai appris l'html et css pour faire des simples sites parce qu'on me demandait ça.

    Maintenant, je ne connais rien en php, j'ai essayer d'apprendre, j'y arrive pas, c'est pas compréhensible pour moi, mon boulot, c'est graphiste mais je suis bien obligé de réaliser ça.

    En ce qui concerne du code, je teste et si ça marche, c'est bien sinon, je teste jusqu'au point ou mon ordi vol par la fenetre.

    Pour ce formulaire, j'ai fait le traitement (que je sais pas ce qui fait le traitement exactement) 2 fois, ça donne ça.
    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
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    <?php 
     
    foreach ($_POST as $var => $value) { 
    $message.="$var = $value<br>\n"; 
     
    } 
     
    $tmp = $_FILES['upload']['tmp_name'];
    $sep = md5(time());
    $filename = $_FILES['upload']['name'];
     
    $filedata = file_get_contents($tmp);
    $fdata = chunk_split(base64_encode($filedata)); 
     
    $to = "philevrard761@msn.com";
     
    $ext = explode('.', $filename);
    $ext = $ext[1];
     
    if($ext == "JPG" || $ext == "jpg" || $ext == "JPEG" || $ext == "jpeg") {
    $mime_type = "image/jpeg";
    }
    elseif($ext == "gif" || $ext == "GIF") {
    $mime_type = "image/gif";
    }
    elseif($ext == "png" || $ext == "PNG") {
    $mime_type = "image/png";
    }
    elseif($ext == "pdf" || $ext == "PDF") {
    $mime_type = "application/pdf";
    }
    else {
    exit("Error: Wrong file type!");
    }
     
    $headers = "From: \"From Name\" <{$to}>
    MIME-Version: 1.0
    Content-Type: Multipart/Mixed;
      boundary=\"$sep\"
    
    charset=\"iso-8859-1\"
    Content-Transfer-Encoding: 7bit
    
    --$sep
    Content-Type: $mime_type;
      name=\"$filename\"
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment;
            filename=\"$filename\"
    
    $fdata
    --$sep";
     
     
    $tmp = $_FILES['upload2']['tmp_name'];
    $sep = md5(time());
    $filename = $_FILES['upload2']['name'];
     
    $filedata = file_get_contents($tmp);
    $fdata = chunk_split(base64_encode($filedata)); 
     
    $to = "philevrard761@msn.com";
     
    $ext = explode('.', $filename);
    $ext = $ext[1];
     
    if($ext == "JPG" || $ext == "jpg" || $ext == "JPEG" || $ext == "jpeg") {
    $mime_type = "image/jpeg";
    }
    elseif($ext == "gif" || $ext == "GIF") {
    $mime_type = "image/gif";
    }
    elseif($ext == "png" || $ext == "PNG") {
    $mime_type = "image/png";
    }
    elseif($ext == "pdf" || $ext == "PDF") {
    $mime_type = "application/pdf";
    }
    else {
    exit("Error: Wrong file type!");
    }
     
    $headers = "From: \"From Name\" <{$to}>
    MIME-Version: 1.0
    Content-Type: Multipart/Mixed;
      boundary=\"$sep\"
    
    charset=\"iso-8859-1\"
    Content-Transfer-Encoding: 7bit
    
    --$sep
    Content-Type: $mime_type;
      name=\"$filename\"
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment;
            filename=\"$filename\"
    
    $fdata
    --$sep";
     
     
     
     
     
     
    $subject = "reponse Win Win";
    mail($to, $subject, $message, $headers);
    header ("Location: merci.php");
     
    ?>

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je n'ai pas testé :
    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
    <?php
     
    foreach ($_POST as $var => $value) { 
    $message.="$var = $value<br>\n"; 
    } 
     
    $to = "philevrard761@msn.com";
     
    $sep = md5(time());
     
    $headers = "From: \"From Name\" <{$to}>
    MIME-Version: 1.0
    Content-Type: Multipart/Mixed; boundary=\"$sep\"
    charset=\"iso-8859-1\"
    Content-Transfer-Encoding: 7bit";
     
    foreach ($_FILES as $value) {
     
        $tmp = $value['tmp_name'];
     
        $filename = $value['name'];
     
        $filedata = file_get_contents($tmp);
        $fdata = chunk_split(base64_encode($filedata)); 
     
        $ext = explode('.', $filename);
        $ext = $ext[1];
     
        if($ext == "JPG" || $ext == "jpg" || $ext == "JPEG" || $ext == "jpeg") {
        $mime_type = "image/jpeg";
        }
        elseif($ext == "gif" || $ext == "GIF") {
        $mime_type = "image/gif";
        }
        elseif($ext == "png" || $ext == "PNG") {
        $mime_type = "image/png";
        }
        elseif($ext == "pdf" || $ext == "PDF") {
        $mime_type = "application/pdf";
        }
        else {
        exit("Error: Wrong file type!");
        }
     
        $headers .= "--$sep
        Content-Type: $mime_type; name=\"$filename\"
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment;
            filename=\"$filename\"
    $fdata
    --$sep";
     
    }
     
    $subject = "reponse Win Win";
    mail($to, $subject, $message, $headers);
    header ("Location: merci.php");
    ?>

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Merci, je viens de tester, dans l'intitulé du mail donc dans la page principe, je vois qu'il y a quelque chose qui est attaché, mais quand j'ouvre l'émail, rien du tout d'attaché.

    voila ce qui me donne moins envie d'apprendre le php, c'est hyper complexe.

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Etant donné que c'est moi qui fait tout le boulot pour l'instant, ce n'est pas trop complexe.

    Il manque peut être juste les retours dans les en-têtes:
    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
    <?php
     
    foreach ($_POST as $var => $value) { 
    $message.="$var = $value<br>\n"; 
    } 
     
    $to = "philevrard761@msn.com";
     
        $sep = md5(time());
     
    $headers = "From: \"From Name\" <{$to}>\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: multipart/mixed;boundary=\"$sep\"\r\n";
     
    foreach ($_FILES as $value) {
     
        $tmp = $value['tmp_name'];
     
        $filename = $value['name'];
     
        $filedata = file_get_contents($tmp);
        $fdata = chunk_split(base64_encode($filedata)); 
     
        $ext = explode('.', $filename);
        $ext = $ext[1];
     
        if($ext == "JPG" || $ext == "jpg" || $ext == "JPEG" || $ext == "jpeg") {
        $mime_type = "image/jpeg";
        }
        elseif($ext == "gif" || $ext == "GIF") {
        $mime_type = "image/gif";
        }
        elseif($ext == "png" || $ext == "PNG") {
        $mime_type = "image/png";
        }
        elseif($ext == "pdf" || $ext == "PDF") {
        $mime_type = "application/pdf";
        }
        else {
        exit("Error: Wrong file type!");
        }
     
        $headers .= "--$sep\r\n";
        $headers .= "Content-Type: $mime_type; name=\"$filename\"\r\n";
        $headers .= "Content-Transfer-Encoding: base64\r\n\r\n";
        $headers .= "$fdata\r\n";
        $headers .= "--$sep\r\n";
     
    }
     
    $subject = "reponse Win Win";
    mail($to, $subject, $message, $headers);
    header ("Location: merci.php");
    ?>

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Cela fonctionne, désolé, merci beaucoup. Mais ce que je ne comprend pas, c'est pq tout ton code php change de celui que l'on a ma fait au début, c'est jamais possible d'avoir tous le meme code parce que la, deja que je capte rien a ce truc de php mais si en plus vous vous mettez tous contre moi pour faire qq'chose de diff, je vais encore moins capter lol


    En faite, ça fonctionne, mais ce qui est drôle, c'est que les photos n'ont pas de poids et donc illisible.

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Comme ça ?
    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
    <?php
     
    foreach ($_POST as $var => $value) { 
    $message.="$var = $value<br>\n"; 
    } 
     
    $to = "philevrard761@msn.com";
     
        $sep = md5(time());
     
    $headers = "From: \"From Name\" <{$to}>\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: multipart/mixed;boundary=\"$sep\"\r\n";
     
    foreach ($_FILES as $value) {
     
        $tmp = $value['tmp_name'];
     
        $filename = $value['name'];
     
        $file_type = filetype($filename);
        $file_size = filesize($tmp);
     
        $handle = fopen($tmp, 'r') or die('File '.$filename.'can t be open');
        $content = fread($tmp, $file_size);
        $content = chunk_split(base64_encode($content));
        $f = fclose($handle);
     
        $ext = explode('.', $filename);
        $ext = $ext[1];
     
        if($ext == "JPG" || $ext == "jpg" || $ext == "JPEG" || $ext == "jpeg") {
        $mime_type = "image/jpeg";
        }
        elseif($ext == "gif" || $ext == "GIF") {
        $mime_type = "image/gif";
        }
        elseif($ext == "png" || $ext == "PNG") {
        $mime_type = "image/png";
        }
        elseif($ext == "pdf" || $ext == "PDF") {
        $mime_type = "application/pdf";
        }
        else {
        exit("Error: Wrong file type!");
        }
     
    	$headers .= '--'.$sep."\r\n";
    	$headers .= 'Content-type:'.$file_type.';name='.$file_name."\r\n";
    	$headers .= 'Content-transfer-encoding:base64'."\r\n";
    	$headers .= $content."\r\n";
     
    }
     
    $subject = "reponse Win Win";
    mail($to, $subject, $message, $headers);
    header ("Location: merci.php");
    ?>

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    celui la ne fonctionne pas, il affiche des caractères spéciaux et c'est tout.

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Me suis un peu mélangé :

    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
    <?php
    $message = "";
    error_reporting(-1);
    foreach ($_POST as $var => $value) { 
    $message.="$var = $value<br>\n"; 
    } 
     
    $to = "philevrard761@msn.com";
     
    $sep = md5(time());
     
    $headers = "From: $to\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: multipart/mixed;boundary=\"$sep\"\r\n";
     
    foreach ($_FILES as $value) {
     
        $tmp = $value['tmp_name'];
     
        $filename = $value['name'];
     
        $file_type = filetype($tmp);
        $file_size = filesize($tmp);
     
        $handle = fopen($tmp, 'r') or die('File '.$filename.'can t be open');
        $content = fread($handle, $file_size);
        $content = chunk_split(base64_encode($content));
        $f = fclose($handle);
     
        $ext = explode('.', $filename);
        $ext = $ext[1];
     
        if($ext == "JPG" || $ext == "jpg" || $ext == "JPEG" || $ext == "jpeg") {
        $mime_type = "image/jpeg";
        }
        elseif($ext == "gif" || $ext == "GIF") {
        $mime_type = "image/gif";
        }
        elseif($ext == "png" || $ext == "PNG") {
        $mime_type = "image/png";
        }
        elseif($ext == "pdf" || $ext == "PDF") {
        $mime_type = "application/pdf";
        }
        else {
            exit("Error: Wrong file type!");
        }
     
    	$message .= '--'.$sep."\r\n";
    	$message .= 'Content-type:'.$file_type.';name='.$filename."\r\n";
    	$message .= 'Content-transfer-encoding:base64'."\r\n";
    	$message .= $content."\r\n";
     
    }
     
    $message .= '--'.$sep."\r\n";
     
    $subject = "reponse Win Win";
    mail($to, $subject, $message, $headers);
    ?>

Discussions similaires

  1. [Upload] upload de plusieurs fichiers
    Par jc_cornic dans le forum Langage
    Réponses: 7
    Dernier message: 12/07/2010, 17h33
  2. [Upload] Upload de plusieurs fichiers via formulaire
    Par seb67110 dans le forum Langage
    Réponses: 2
    Dernier message: 02/05/2007, 11h55
  3. Réponses: 6
    Dernier message: 01/04/2007, 18h39
  4. Réponses: 10
    Dernier message: 12/06/2006, 16h45
  5. Réponses: 3
    Dernier message: 21/02/2006, 16h43

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