Solution de l'exercice :

Source : lesson_20_a3_envoyer_un_fichier.php Résultat
<?php
//nom du répertoire où le fichier va être téléchargé 
//sur le serveur
$serverUploadPath "../exercises/upload/";
//-------------------------------------------------------- //

//On regarde si le formulaire a été soumis
if (!isset($_REQUEST["submit"])) 
{  
//si pas submit, on construit le formulaire
    
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
<link rel="icon" type="image/png" href="../images/favicon.png" />
</head>
    <body>
    <table border="0" width="60%" align="center">
        <tr><td valign="top">
    <table> 
    <form action= "../commons/show_solutions.php?exercise=
        lesson_20_a3_envoyer_un_fichier.php" 
        method="post" 
        enctype="multipart/form-data">
    <!--dans la pratique, on mécrira plutôt :
    <form action="<?php echo $_SERVER['PHP_SELF'?>" ... -->
    <tr><td><b>Votre nom    : </b></td><tr></tr><td>
        <input type="text" size="23" name="Name"></td></tr>
    <tr><td><b>Votre Email  : </b></td></tr><tr><td>
        <input type="text" size="23" name="mailFrom"></td></tr>
    <tr><td><b>Fichier à télécharger</b></td></tr><tr><td>
        <input name='toUpload' type='file'></td>
    <tr><td><b>Commentaires: </b></td></tr><tr><td>
        <textarea name="Message" cols="20" rows="2"></textarea>
        </td></tr>
    <tr><td><input type="reset" name="reset" value=" Effacer "></td>
        </tr><tr><td align=left>
        <input type="submit" name="submit" value=" Envoyer " >
    </form>    </td></tr></table></table>
    </body>    </html>
    <?php 

else  
{
    global 
$serverUploadPath ;
    
// ----------------------------- Upload--------- //
    
$FileName=$_FILES["toUpload"]["name"];
    
$tempFileName=$_FILES["toUpload"]["tmp_name"];
    
$size=$_FILES["toUpload"]["size"];
    
$type=$_FILES["toUpload"]["type"];
    
$new_FileName time() . "-" $FileName;
    
$new_FileName str_replace(" ","_",$new_FileName);
    
    if (
move_uploaded_file
        
($tempFileName,$serverUploadPath.$new_FileName))
    {
         echo 
"Fichier envoyé sur le serveur <br/>";
         echo 
"Nom du fichier : $FileName<br/>";
         echo 
"Nom temporaire : $tempFileName<br/>";
         echo 
"Nouveau nom : $new_FileName<br/>";
         echo 
"Emplacement : <br/>$serverUploadPath<br/>";
         echo 
"Taille : $size<br/>";
         echo 
"Type : $type<br/>";
         
//si email valide envoi message         
        
$mailFrom $_REQUEST['mailFrom'];
        
$mailAddressOK isEmailAddress($mailFrom);
        if (
$mailAddressOK)
        {
            
$Message  $_REQUEST['Message'];
             echo 
"Envoi du courrier de remerciements <br/>";
            
// ---------Construction du mail------ //
             
$sujet "Merci pour votre fichier\n";
             
$message "Fichiers téléchargés dans le dossier: ".
                
"http://www.atelierphp.net/exercises/upload <br/>";
             if(!
mail($mailFrom,$sujet,$message))
             {
                 print 
"Erreur lors de l'envoi du message<br/>";
             }
             else
             {
                 echo 
"Votre message a  été envoyé <br/>"
             }
        }
    }
    else
    {
        echo 
"Erreur lors du transfer du fichier";
    }
    
    
}
//******************fonctions
//pour savoir si l'email fourni a un format valide
function isEmailAddress($field)
{
    
$pattern "/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])".
        
"*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/";
    if(
preg_match($pattern$field))
    {
        echo 
"L'adresse email est correcte <br/>";
        return 
1;
    }
    else
    {
        echo  
"L'adresse email semble erronée, 
        pas d'envoi de sourrier <br/>"
;
        return 
0;
    }
}



?>
Votre nom :
Votre Email :
Fichier à télécharger
Commentaires:


Tous droits réservés. 2005-2020