header('Content-type: text/html; charset=UTF-8'); // Appel de la classe require '../Classe_Upload.php'; require '../adresses_dossiers.php'; /* 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>
<?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'; $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é'; }
<?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'; $up = new Telechargement($dossier_photo, 'form1', 'photo'); /* paramétrage extensions autorisées */ $extensions = array('jpg', 'jpeg'); $up->Set_Extensions_accepte($extensions); // redimensionnements $up->Set_Redim('200', '150', array('_min')); $up->Set_Redim('1000', '800', array('_max')); // Renommage incrémentiel en cas de doublons (le contrôle se fera sur nomdufichier_min.jpg) $up->Set_Renomme_fichier('incr'); $up->Upload('reload'); $messages_upload = $up->Get_Tab_message(); $messages_upload_html = null; foreach ($messages_upload as $num) { foreach ($num as $value) { $messages_upload_html .= '<p>- ' . htmlspecialchars($value) . '</p>'; } } $tableau_resultat = $up->Get_Tab_result(); ?> <!doctype html> <html lang="fr"> <head> <meta charset="UTF-8" /> <title>Redimentionnements avec suffixes ou préfixes</title>
//Liste des dossiers autorisés (sans caractères spéciaux ni accents, ni espaces). $dossiers_autorise = array('dossier photos' => $dossier_photo, 'dossier pdf' => $dossier_pdf); $dossier = $dossiers_autorise['dossier photos']; $extensions = array("jpeg", "jpg", "pdf"); $erreur_dossier = null; // Si le formulaire est envoyé on regarde si $_POST['categorie'] fait partie du tableau de dossiers autorisés if (isset($_POST['form_envoi'], $_POST['categorie'])) { if (in_array($_POST['categorie'], $dossiers_autorise)) { $dossier = $_POST['categorie']; } else { $erreur_dossier = 'Vous devez choisir le dossier'; } } if (empty($erreur_dossier)) { //Utilisation de la classe de téléchargement (cf la doc pour plus de précisions) $up = new Telechargement($dossier, 'form_envoi', 'fich_upload', 'get_form'); //Extensions autorisées $up->Set_Extensions_accepte($extensions); // En cas de doublon sur le serveur, les fichiers seront renommés avec une méthode incrémentale. $up->Set_Renomme_fichier('incr'); // Envoi des données et traitement de l'upload avec rechargement de la page pour éviter un multi upload en cas de rafraichissement de la page. $up->Upload('reload'); // Récupération des messages d'information $resultat = $up->Get_Tab_message(); } ?> <!doctype html> <html lang="fr"> <head> <meta charset="UTF-8" /> <title>Dossier de destination défini dans le formulaire</title>
<?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 {
<?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'; /* Doit être un fichier valide dans $dossier_photo_PF si vous voulez qu'il s'affiche pour le test */ $avatar_par_defaut = 'avatar_par_defaut.jpg'; /* Initialisation de la classe en dehors de toute condition $_POST (et $_FILES) */ $up = new Telechargement($dossier_photo, 'form1', 'photo'); /* paramétrage extensions autorisées */ $extensions = array('jpg', 'jpeg'); $up->Set_Extensions_accepte($extensions); /* redimensionnement en maximum 200x200 (si nécessaire) */ $up->Set_Redim(200, 200); /* On défini le séparateur de dimension. Permet d'avoir un code générique pour trouver les dimensions des images dans le tableau des résultats */ $separateur_dimensions = 'x'; $up->Set_Separateur_dimImg($separateur_dimensions); /* Utilisée sans argument cette fonction permet de n'afficher que les messages d'erreurs d'upload */ $up->Set_Message_court(); /* !******! Si on souhaite que l'upload d'un fichier soit obligatoire il suffira de décommenter la ligne ci-dessous (dans notre contexte) */ /*$up->Set_Message_champVide('Champ de téléchargement vide. Un fichier est requis !'); */ /* Note * : il faudrait compléter la configuration de la classe avec Set_Renomme_fichier() ou Set_Controle_fichier() si vous souhaitez éviter l'écrasement de fichiers déjà existants sur le serveur. */ /* Petite fonction pratique dans notre contexte pour exploiter le tableau des résultats de l'upload */ function Result_upload($upload_result, $dossier_destination, $index, $num = 0) { return isset($upload_result['resultat'][$num][$dossier_destination][$index]) ? $upload_result['resultat'][$num][$dossier_destination][$index] : null; } /* Condition $_POST d'envoi du formulaire */ if (isset($_POST['form1'])) {
<?php namespace Pages; require __DIR__ . '../../../core/initialize.php'; class Telechargement extends \PageHelper { public $arrayTemplate = []; public $strTemplate = "Telechargement.html5.twig"; public function run() { global $config; $urlClient = $config["linkClient"]; $urlClientTorrent = $config["linkClientTorrent"]; $cacheManager = \CacheHelper::getCacheManager(); if ($cacheManager->isExisting("sizeOfClient")) { $size = $cacheManager->get("sizeOfClient"); } else { $size = \FonctionsUtiles::sizeOfFileExt($urlClient); $cacheManager->set("sizeOfClient", $size, 21600); } $this->arrayTemplate["urlClient"] = $urlClient; $this->arrayTemplate["urlClientTorrent"] = $urlClientTorrent; $this->arrayTemplate["tailleClient"] = \FonctionsUtiles::Formatage_Taille($size); $view = $this->template->render($this->arrayTemplate); $this->response->setContent($view); $this->response->send(); } } $class = new Telechargement(); $class->run();
include_once "class/etudiant.class.php"; include_once "class/entrepreneur.class.php"; include_once "class/stage.class.php"; //include_once "class/enseignant.class.php"; include_once "myPDO.include.php"; // initialise la variable $user require_once "init.inc.php"; require 'class/upload/Classe_Upload.php'; require 'class/upload/adresses_dossiers.php'; if ($user instanceof Etudiant) { /*TO DO : * - Restreindre les fichier à une taille maximun et modifier le controle pour le fichier soit un PDF */ // Module d'upload ----------------------------------------------------------------------------------------------------------------------------------- // 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
require '../adresses_dossiers.php'; // Téléchargements de fichiers de nature différentes (photos et pdf) dans des répertoires différents avec si besoin renommage des fichiers, puis redimentionnement des images et traitement php. $form_photo = new Telechargement($dossier_photo, 'formulaire', 'photo', 'get_formulaire'); // Tableau des extensions autorisées (en minuscules). Dans cet exemple, seules les extensions "jpg" et "jpeg" sont autorisées $extensions_photo = array('jpg', 'jpeg'); // Envoi du tableau des extensions autorisées $form_photo->Set_Extensions_accepte($extensions_photo); // Images originales téléchargées dans le répertoire "PHOTO" + mêmes images redimensionnées en max 950 x 800 téléchargées dans le répertoire "PHOTO_GF" + mêmes images redimensionnées en max 200 x 200 téléchargées dans le répertoire "PHOTO_PF" $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.