require '../Classe_Upload.php'; require '../adresses_dossiers.php'; $up = new Telechargement($dossier_photo, 'form1', 'photo'); /* paramétrage extensions autorisées */ $extensions = array('jpg', 'jpeg'); $up->Set_Extensions_accepte($extensions); /* redimensionnement (si nécessaire) en maximum 100x100 */ $up->Set_Redim('200', '200'); /* message simplifié en retour pour le visiteur (par exemple) */ $up->Set_Message_court(': téléchargement effectué'); /* Condition $_POST d'envoi du formulaire */ if (isset($_POST['form1'])) { $pseudo = trim($_POST['pseudo']); if ($pseudo != '') { /* Upload du fichier */ $up->Upload(); /* Récupération du tableau des résultats d'upload */ $tab_result = $up->Get_Tab_upload(); /* Si un seul champ unique de type file on peut récupérer le nom du fichier ainsi : */ $nom_fichier = isset($tab_result['resultat'][0][$dossier_photo]['nom']) ? $tab_result['resultat'][0][$dossier_photo]['nom'] : 'avatar_par_defaut.jpg'; /* Enregistrement du nom du fichier et du pseudo en bdd... */ /* ... */ $_SESSION['enregistrement'] = 'Pseudo "' . $pseudo . '" et avatar "' . $nom_fichier . '" enregistrés'; } else { $_SESSION['enregistrement'] = 'Le pseudo doit être renseigné'; } /* Pour éviter un message du navigateur en cas de rafraichissement de la page */ $up->Get_Reload_page(); } $message_enregistrement_html = isset($_SESSION['enregistrement']) ? $_SESSION['enregistrement'] : null; unset($_SESSION['enregistrement']);
L'adresse des dossiers passés en paramètre à la fonction d'upload doit être fournie par rapport à la racine du serveur. En utilisation courante, suivant que vous êtes sur un serveur distant ou sur un serveur d'évaluation, et en supoosant par exemple que le dossier 'PDF' soit situé à la racine du site, vous devriez indiquer : $dossier_pdf = 'PDF'; ou $dossier_pdf = 'dossier_du_site/PDF'; Dans ces exemples le chemin des dossiers est défini automatiquement avec "adresses_dossiers.php" pour les tests. */ $up = new Telechargement($dossier_pdf, 'form1', 'doc'); $extensions = array('pdf', 'txt', 'doc', 'docx', 'odt', 'jpg', 'jpeg', 'png', 'gif'); $up->Set_Extensions_accepte($extensions); //$up->Set_Message_court('upload ok'); //$up->Set_Controle_fichier(); $up->Upload('reload'); $messages = $up->Get_Tab_message(); ?> <!doctype html> <html lang="fr"> <head> <meta charset="UTF-8" /> <title>Exemple basique</title> <style type="text/css"> body {font-family:Arial, Helvetica, sans-serif; font-size:12px;} </style> </head> <body> <form enctype = "multipart/form-data" action = "#" method = "post"> <input name = "doc" type = "file" />
// Déclaration de la classe avec envoi des paramètres (cf doc) $form = new Telechargement($dossier_pdf, 'envoi_file', 'photo', 'get_form'); // option : contrôle que le fichier est une image de type gif, jpg, jpeg ou png (et retourne ses dimensions dans le tableau des résultats - tableau non exploité dans l'exemple ci-dessous) //$form->Set_Controle_dimImg (); // option : contrôle que le fichier est un pdf $extensions = array('pdf'); $form->Set_Extensions_accepte($extensions); //Controle la taille du fichier uploader $form->Set_Max_poidsFicher('1 Mo'); //Defini le nom des fichier téléchargé $nomFichier = time() . ''; $form->Set_Nomme_fichier($nomFichier, 'pdf'); //option pour renommer le fichier en mode incrémentiel si un fichier de même nom existe déjà sur le serveur $form->Set_Renomme_fichier('incr'); //Téléchargement sans traitement php supplémentaire -> on spécifie un rechargement de la page suite au téléchargement en indiquant un argument non nul ex 'reload' dans la fonction d'Upload. $form->Upload(); // Enregistrement des messages de contrôle $messages_form = $form->Get_Tab_message(); $config_serveur = $form->Return_Config_serveur('tableau'); $max_fichier_serveur = $config_serveur['upload_max_filesize']; $max_post_serveur = $config_serveur['post_max_size']; //---------------------------------------------------------------------------------------------------------------------------------------------------- /* * TO DO : * - (* potentiellement terminé *) Recuperer l'adresse mail de l'employeur grace a l'id du stage $_REQUEST['id'] * - Crée un mail en rajoutant les fichiers téléchargés au centent-type (piece jointe) * - envoyer le mail mail($destinataire, $titreDuMail, $message, $entete); * - Ajouter le stage à la listes de stage de l'etudiant (Ajoute ue ligne sur la table postuler en meme temps) * - Supprimer le fichier grace à la class File */ // récupérer mail
<?php //Si on travaille en utf-8 (recommandé) header('Content-type: text/html; charset=UTF-8'); // Appel de la classe require '../Classe_Upload.php'; require '../adresses_dossiers.php'; // Déclaration de la classe avec envoi des paramètres (cf doc) $form = new Telechargement($dossier_photo, 'envoi_file', 'photo', 'get_form'); // option : contrôle que le fichier est une image de type gif, jpg, jpeg ou png (et retourne ses dimensions dans le tableau des résultats - tableau non exploité dans l'exemple ci-dessous) $form->Set_Controle_dimImg(); //option pour renommer le fichier en mode incrémentiel si un fichier de même nom existe déjà sur le serveur $form->Set_Renomme_fichier('incr'); //Téléchargement sans traitement php supplémentaire -> on spécifie un rechargement de la page suite au téléchargement en indiquant un argument non nul ex 'reload' dans la fonction d'Upload. $form->Upload('reload'); // Enregistrement des messages de contrôle $messages_form = $form->Get_Tab_message(); $config_serveur = $form->Return_Config_serveur('tableau'); $max_fichier_serveur = $config_serveur['upload_max_filesize']; $max_post_serveur = $config_serveur['post_max_size']; ?> <!doctype html> <html lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Téléchargement de fichiers, upload multiple avec complément fonctions javascript</title> <script type="text/JavaScript"> <!-- function Attente_Load(id_attente)// écrit patientez durant le téléchargement {
$form_photo->Set_Redim('950', '800', $dossier_photo_GF); $form_photo->Set_Redim('200', '200', $dossier_photo_PF); // Contrôle de l'existence d'un fichier de nom identique dans le répertoire de destination et si oui renommage du fichier téléchargé avec un suffixe unique. $form_photo->Set_Renomme_fichier(); // Téléchargement sans reload de la page $form_photo->Upload(); // Dans le même formulaire un fichier pdf à télécharger dans le répertoire "PDF" $form_pdf = new Telechargement($dossier_pdf, 'formulaire', 'pdf', 'get_formulaire'); // Tableau des extensions autorisées (en minuscules). Dans cet exemple, seules les extensions "pdf" sont autorisées $extensions_pdf = array('pdf'); // Envoi du tableau des extensions autorisées $form_pdf->Set_Extensions_accepte($extensions_pdf); // Contrôle de l'existence d'un fichier de nom identique dans le répertoire de destination et si oui renommage du fichier téléchargé avec un suffixe incrémentiel $form_pdf->Set_Renomme_fichier('incr'); // Téléchargement sans reload de la page $form_pdf->Upload(); // Le reload de la page sera effectué à la fin du traitement php en utilisant la fonction "Get_Reload_page()" if (isset($_POST['formulaire'])) { //Récupération des résultats //$transfert_form_photo = $form_photo->Get_Tab_upload (); //$transfert_form_pdf = $form_pdf->Get_Tab_upload (); // Voir la structure du tableau de résultat, et un exemple de récupération en fin de script //enregistrement des données en bdd etc. // Rechargement de la page pour éviter un multiple post en cas de rafraichissement de la page par le visiteur $form_photo->Get_Reload_page(); } // A noter que l'appel à la fonction Get_Tab_message() doit se faire APRES la condition "if (isset($_POST..." $messages_form_pdf = $form_pdf->Get_Tab_message(); $messages_form_photo = $form_photo->Get_Tab_message(); // Les deux lignes ci-dessous devraient logiquement se trouver à l'intérieur la condition "if (isset($_POST...)" pour servir par exemple à alimenter une bdd. Elles sont ici uniquement pour démonstration et afficher la structure du taleau de résultat en bas de page. $transfert_form_photo = $form_photo->Get_Tab_upload();