Leçon N° 20 : Courrier, réseau
Envoi de fichier du poste client vers le serveurSolutionSolution & source***
• Changer les paramètres de la première partie du programme
• Rajouter un controle de validité de l'adresse email pris dans 'lesson_08_form_1_classe_validation.inc'
• Contrôler la validité du format de l'adresse courrier fourni (voir leçon 8, class_validation.inc)
• Tester l'ensemble : envoyer un fichier de plus de 2 MO, est-ce que cela fonctionne ? Pourquoi ?
Notes de page
Source: lesson_20_a3_envoyer_un_fichier.phpRésultat
<?php
//nom du dossier où le fichier va être téléchargé sur leserveur
$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">
    <body>
    <table border="0" width="60%" align="center">
        <tr><td valign="top">
    <table> 
    <form action= "../commons/show_exercises.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 ;
    
// ------------- Vérification des champs saisis ------ //
    
$mailFrom $_REQUEST['mailFrom']; 
    
$Message  $_REQUEST['Message'];
    
// ----------------------------- 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/>";
         
         echo 
"Envoi du courrier de remerciements <br/>";
        
// ---------Construction du mail------ //
         
$sujet "Test AtelierPHP (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é correctement.<br/>"
         } 
    }
    else
    {
        echo 
"Erreur lors du transfer du fichier";
    }
    
    
}
?>

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

Tous droits réservés. 2005-2020