<?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
{              
$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>
<style type="text/css">
body {font-family:Arial, Helvetica, sans-serif; font-size:12px;}
</style>
$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.
    // 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();