$user_texte = ($user_id) ? 'Signature '.$user_texte : $user_texte ; exit('<li id="sgn_'.$user_id.'">'.html($user_texte).' : <img src="'.URL_DIR_IMPORT.FileSystem::$file_saved_name.'" alt="'.html($user_texte).'" width="'.$width.'" height="'.$height.'" /><q class="supprimer" title="Supprimer cette image (aucune confirmation ne sera demandée)."></q></li>'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Supprimer un fichier image (tampon de l'établissement ou signature) // //////////////////////////////////////////////////////////////////////////////////////////////////// if( ($action=='delete_signature') && ($user_id>=0) ) { DB_STRUCTURE_IMAGE::DB_supprimer_image( $user_id , 'signature' ); exit('ok'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Il se peut que rien n'ait été récupéré à cause de l'upload d'un fichier trop lourd // //////////////////////////////////////////////////////////////////////////////////////////////////// if(empty($_POST)) { exit('Erreur : aucune donnée reçue ! Fichier trop lourd ? '.InfoServeur::minimum_limitations_upload()); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // On ne devrait pas en arriver là... // //////////////////////////////////////////////////////////////////////////////////////////////////// exit('Erreur avec les données transmises !'); ?>
?> <p><span class="manuel"><a class="pop_up" href="<?php echo SERVEUR_DOCUMENTAIRE; ?> ?fichier=support_administrateur__photos_eleves">DOC : Photos des élèves</a></span></p> <div class="danger">Respectez les conditions légales d'utilisation (droit à l'image précisé dans la documentation ci-dessus).</div> <hr /> <h2>Ajout multiple</h2> <form action="#" method="post" id="form2"><fieldset> <p class="astuce"> Taille maximale du fichier : <b><?php echo InfoServeur::minimum_limitations_upload(FALSE); ?> </b> <img alt="" src="./_img/bulle_aide.png" width="16" height="16" title="Le webmestre du serveur a accès au détail de la configuration PHP expliquant cette limite." />. </p> <label class="tab" for="f_masque">Forme noms fichiers :</label><input id="f_masque" name="f_masque" size="50" maxlength="50" type="text" value="" /><br /> <label class="tab" for="bouton_zip">Upload fichier <em>zip</em> :</label><button id="bouton_zip" type="button" class="fichier_import">Parcourir...</button><label id="ajax_msg_zip"> </label> </fieldset></form> <hr /> <h2>Gestion individuelle</h2> <form action="#" method="post" id="form_select"><fieldset> <label class="tab" for="f_groupe">Regroupement :</label><?php echo $select_groupe; ?>
/** * Récupérer un fichier uploadé, effectuer les vérifications demandées, et l'enregistrer dans le dossier et sous le nom indiqué. * * @param string $fichier_final_chemin * @param string $fichier_final_nom (facultatif) Si pas transmis, ce sera le nom du fichier envoyé (nettoyé) ; si transmis, peut comporter ".<EXT>" qui sera remplacé par l'extension du fichier réceptionné. * @param array $tab_extensions_autorisees (facultatif) tableau des extensions autorisées * @param array $tab_extensions_interdites (facultatif) tableau des extensions interdites * @param int $taille_maxi (facultatif) en Ko * @param string $filename_in_zip (facultatif) nom d'un fichier contenu dans le fichier zippé reçu, à extraire au passage * @return TRUE|string TRUE ou un message d'erreur */ public static function recuperer_upload( $fichier_final_chemin , $fichier_final_nom=NULL , $tab_extensions_autorisees=NULL , $tab_extensions_interdites=NULL , $taille_maxi=NULL , $filename_in_zip=NULL ) { // Si le fichier dépasse les capacités du serveur, il se peut que $_FILES ne soit même pas renseigné. if(!isset($_FILES['userfile'])) { return 'Problème de transfert ! Fichier trop lourd ? '.InfoServeur::minimum_limitations_upload(); } // Si $_FILES est renseigné, il se peut qu'il y ait quand même eu un dépassement des limites ou un problème d'écriture. $tab_file = $_FILES['userfile']; $fichier_tmp_nom = $tab_file['name']; $fichier_tmp_chemin = $tab_file['tmp_name']; $fichier_tmp_taille = $tab_file['size']/1000; // Conversion octets => Ko $fichier_tmp_erreur = $tab_file['error']; if( (!file_exists($fichier_tmp_chemin)) || (!$fichier_tmp_taille) || ($fichier_tmp_erreur) ) { $alerte_open_basedir = InfoServeur::is_open_basedir() ? ' Variable serveur "open_basedir" mal renseignée ?' : '' ; $alerte_upload_size = ' Fichier trop lourd ? '.InfoServeur::minimum_limitations_upload(); return 'Problème de récupération !'.$alerte_open_basedir.$alerte_upload_size; } // Vérification d'une sécurité sur le nom if($fichier_tmp_nom{0}=='.') { return 'Le nom du fichier ne doit pas commencer par un point !'; } // Vérification de l'extension $extension = strtolower(pathinfo($fichier_tmp_nom,PATHINFO_EXTENSION)); if( ($tab_extensions_autorisees!==NULL) && (!in_array($extension,$tab_extensions_autorisees)) ) { return 'L\'extension du fichier transmis n\'est pas conforme !'; } if( ($tab_extensions_interdites!==NULL) && (in_array($extension,$tab_extensions_interdites)) ) { return 'L\'extension du fichier transmis est interdite !'; } // Vérification de la taille if( ($taille_maxi!==NULL) && ($fichier_tmp_taille>$taille_maxi) ) { $conseil = ''; if( ($tab_extensions_autorisees!==NULL) && (in_array('jpg',$tab_extensions_autorisees)) ) { $conseil = (($extension=='jpg')||($extension=='jpeg')) ? ' : réduisez les dimensions de l\'image' : ' : convertissez l\'image au format JPEG' ; } return 'Le fichier dépasse les '.$taille_maxi.' Ko autorisés'.$conseil.' !'; } // On rapatrie le fichier dans l'arborescence SACoche, en en dézippant un fichier précis si demandé $fichier_final_nom = ($fichier_final_nom) ? str_replace('.<EXT>','.'.$extension,$fichier_final_nom) : Clean::fichier($fichier_tmp_nom); if( ($extension!='zip') || ($filename_in_zip===NULL) ) { if(!move_uploaded_file($fichier_tmp_chemin,$fichier_final_chemin.$fichier_final_nom)) { return 'Le fichier n\'a pas pu être enregistré sur le serveur.'; } } else { // Dézipper le fichier (on considère alors que c'est un zip venant de SACoche et contenant import_validations.xml) if(extension_loaded('zip')!==TRUE) { return 'Le serveur ne gère pas les fichiers ZIP ! Renvoyez votre fichier sans compression.'; } // Remarque : la ligne suivante peut balancer un exit sans se poser de questions FileSystem::unzip_one( $fichier_tmp_chemin , $filename_in_zip , $fichier_final_chemin.$fichier_final_nom ); } // C'est bon :) FileSystem::$file_upload_name = $fichier_tmp_nom; FileSystem::$file_saved_name = $fichier_final_nom; return TRUE; }
$TITRE = html(Lang::_("Photos des élèves")); // Fabrication des éléments select du formulaire $select_groupe = HtmlForm::afficher_select( DB_STRUCTURE_COMMUN::DB_OPT_regroupements_etabl( FALSE /*sans*/ , FALSE /*tout*/ ) , 'f_groupe' /*select_nom*/ , '' /*option_first*/ , FALSE /*selection*/ , 'regroupements' /*optgroup*/); ?> <p><span class="manuel"><a class="pop_up" href="<?php echo SERVEUR_DOCUMENTAIRE ?>?fichier=support_administrateur__photos_eleves">DOC : Photos des élèves</a></span></p> <div class="danger">Respectez les conditions légales d'utilisation (droit à l'image précisé dans la documentation ci-dessus).</div> <hr /> <h2>Ajout multiple</h2> <form action="#" method="post" id="form2"><fieldset> <p class="astuce"> Taille maximale du fichier : <b><?php echo InfoServeur::minimum_limitations_upload(FALSE /*avec_explication*/) ?></b> <img alt="" src="./_img/bulle_aide.png" width="16" height="16" title="Le webmestre du serveur a accès au détail de la configuration PHP expliquant cette limite." />. </p> <label class="tab" for="f_masque">Forme noms fichiers :</label><input id="f_masque" name="f_masque" size="50" maxlength="50" type="text" value="" /><br /> <label class="tab" for="bouton_zip">Upload fichier <em>zip</em> :</label><button id="bouton_zip" type="button" class="fichier_import">Parcourir...</button><label id="ajax_msg_zip"> </label> </fieldset></form> <hr /> <h2>Gestion individuelle</h2> <form action="#" method="post" id="form_select"><fieldset> <label class="tab" for="f_groupe">Regroupement :</label><?php echo $select_groupe ?> <label id="ajax_msg"> </label> </fieldset></form> <p id="liste_eleves"> </p>
36=>'3 ans', ); $select_duree_conservation = ''; foreach($tab_select_duree_conservation as $option_value => $option_texte) { $selected = ($option_value==FICHIER_DUREE_CONSERVATION) ? ' selected' : '' ; $select_duree_conservation .= '<option value="'.$option_value.'"'.$selected.'>'.$option_texte.'</option>'; } ?> <p><span class="manuel"><a class="pop_up" href="<?php echo SERVEUR_DOCUMENTAIRE ?>?fichier=support_webmestre__fichiers_deposes">DOC : Fichiers déposés.</a></span></p> <hr /> <form action="#" method="post" id="form_fichiers"><fieldset> <label class="tab" for="f_taille_max">Taille maximale :</label><select id="f_taille_max" name="f_taille_max"><?php echo $select_taille_max ?></select> <p> <span class="astuce">Il faut aussi tenir compte de la configuration du serveur : <b><?php echo InfoServeur::minimum_limitations_upload() ?></b>.</span> </p> <hr /> <label class="tab" for="f_duree_conservation">Durée conservation :</label><select id="f_duree_conservation" name="f_duree_conservation"><?php echo $select_duree_conservation ?></select> <p> <span class="astuce">Une initialisation annuelle des données supprime de toutes façons le référencement des documents concernés.</span> </p> <hr /> <p> <span class="tab"></span><button id="f_enregistrer" type="submit" class="parametre">Enregistrer ces paramètres.</button><label id="ajax_msg_enregistrer"> </label><br /> </p> </fieldset></form>