Ejemplo n.º 1
0
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é';
    }
Ejemplo n.º 3
0
<?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>
Ejemplo n.º 5
0
<?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'])) {
Ejemplo n.º 7
0
<?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();
Ejemplo n.º 8
0
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.