/* 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']);
$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>';
    }
}
?>
<!doctype html>
<html lang="fr">
<head>
<meta charset="UTF-8" />
<title>inscription, upload</title>
<style type="text/css">
body {font-family:Arial, Helvetica, sans-serif; font-size:12px;}
</style>
Example #2
0
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" />				 
<input type = "submit" name = "form1" value = "Envoyez"  />	
        $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>
<style type="text/css">
body {font-family:Arial, Helvetica, sans-serif; font-size:12px;}
</style>

</head>
 
<body>
<div>
//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
{              
	var id_attente = document.getElementById(id_attente);
    if ($pseudo == '') {
        $erreur_texte[] = 'le pseudo doit être renseigné';
    }
    /* il faudrait compléter le contrôle...*/
    $mail = $tab_ses['mail'] = trim($_POST['mail']);
    if ($mail == '') {
        $erreur_texte[] = 'le mail doit être renseigné';
    }
    /* il faudrait compléter le contrôle avec filter_validate_email pour tester le mail */
    $tab_ses['erreur_texte'] = $erreur_texte;
    if (count($erreur_texte) == 0) {
        $up->Upload();
        /* Tableau de résultat de l'upload (enregistré en session pour afficher la vignette d'upload) */
        $upload_result = $tab_ses['upload_result'] = $up->Get_Tab_upload();
        /* Tableau des messages d'information de l'upload = messages d'erreur puisque Set_Message_court est utilisé sans paramètre */
        $erreur_upload = $tab_ses['erreur_upload'] = $up->Get_Tab_message();
        if (count($erreur_upload) == 0) {
            /* nom final du fichier d'upload après éventuelle correction automatique (à enregistrer en bdd). */
            $nom_final_fichier = Result_upload($upload_result, $dossier_destination, 'nom');
            /* Si pas de fichier on met l'avatar */
            $nom_final_fichier = isset($nom_final_fichier) ? $nom_final_fichier : $avatar_par_defaut;
            /* ici l'insertion de $pseudo, $mail et $nom_final_fichier en bdd ...  */
            /*... */
            /* Confirmation d'enregistrement */
            $tab_ses['succes'] = true;
        }
    }
    $up->Get_Reload_page();
}
/* On récupère les variables de session */
$tab_ses = isset($_SESSION['form1_inscr']) ? $_SESSION['form1_inscr'] : null;
// 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();
$transfert_form_pdf = $form_pdf->Get_Tab_upload();
$config_serveur = $form_photo->Return_Config_serveur('tableau');
$max_fichier_serveur = $config_serveur['upload_max_filesize'];
$max_post_serveur = $config_serveur['post_max_size'];
/* Debug
 
- Si aucun message ne s'affiche après l'envoi d'un fichier, un ou plusieurs paramètres passés dans la déclaration de la classe sont erronés ou les variables de session ne fonctionnent pas sur votre serveur.
 
- Si le message "Le total maximum du post autorisé par le serveur est dépassé" s'affiche même pour un fichier de petite taille, le nom de l'input d'identification du formulaire passé en deuxième paramètre lors de l'initialisation de la classe est erroné.
 
*/
?>