public function getFileSize() { $this->fileSize = filesize(getFtpRoot() . $this->documentPath . '/' . $this->documentName); $units = array('octets', 'ko', 'Mo', 'Go', 'To'); $unit = 0; while ($this->fileSize > 1024) { $this->fileSize /= 1024; $unit++; } return (string) round($this->fileSize, 2) . $units[$unit]; }
<?php if (!isset($_GET['path']) || strlen($_GET['path']) === 0 || !isset($_GET['acces_id'])) { return '#'; } require 'classes/db.class.php'; require 'falcon.php'; session_start(); $path = getFtpRoot() . urldecode($_GET['path']); try { // Enregistrer la statistique de consultation du document (preview seulement) $db = new db(DSN, USER, PASSW); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true); $user_id = isset($_SESSION) && isset($_SESSION['user_id']) ? $_SESSION['user_id'] : null; $db->registerUserAccess('document', 'download', (int) $_GET['acces_id'], $user_id); } catch (PDOException $e) { die("Erreur de base de données, merci de contacter votre administrateur."); } header('Content-type: application/pdf'); header('Content-Disposition: attachment; filename="' . basename($path) . '"'); readfile($path);
?> </p> <?php } ?> <h2>Documents</h2> <ul class="documentList active"> <!-- Documents --> <?php $queryDelete = new HttpQueryStr(); /** @var AdminDocumentAccess $documentAccess */ /** @var AdminDocumentAccessListByType $allDocumentAccess */ foreach ($allDocumentAccess as $documentAccess) { // Si le fichier n'est plus dans l'espace ftp /** @var array $allDocuments */ if (!in_array(getFtpRoot() . $documentAccess->fullPath, $allDocuments)) { // Constitution de la requête http $queryDelete->delete = $documentAccess->getDocumentId(); ?> <li> <!-- Activer --> <a href="<?php echo '?' . $queryDelete; ?> " class="desactiver" title="Nettoyer"></a> <img src="/img/icon-pdf-36x36.png" width="24" height="24" alt=""/> <p><strong><?php echo $documentAccess->getType() . ' / ' . $documentAccess->getName(); ?> </strong><br/> <?php
$upload->setDstPath(getFtpRoot() . '/upload/'); $upload->upload(); $confirm[] = "Le document " . $_FILES['brochures']['name'][$i] . " a été uploadé."; } } catch (UploaderException $e) { $error = $e->getMessage(); } } } // Ajouter un accès à un document if ($httpQuery->has('indexForm', 'active')) { $user_key = keygen(); $id_avion = false; $submitName = 'activate_access'; $submitValue = 'Activer'; $name = ''; $type_id = ''; $id_avion_image = 0; $comment = ''; $reference = ''; $ids_avion_arr = $db->getAllProducts(); } // Tous les documents présent sur l'espace ftp $allDocuments = readdir_recursive(getFtpRoot() . '/', array('pdf', 'PDF')); // Tous les documents activés dans la base // Tableau sous la forme [id_doc] => full_path; $allDbDocs = $db->getAllDocumentsPath(); // Tous les produits enregistrés dans la base $allProducts = $db->getAllProducts(); // Tous les types enregistrés dans la base $allTypes = $db->getAllTypes();
} ?> <a href="#" class="brochure-upload-submit">Upload de documents</a> <form class="brochure-upload-form" action="<?php echo $_SERVER['REQUEST_URI']; ?> " method="post" enctype="multipart/form-data"> <input type="file" name="brochures[]" value="" multiple/> </form> <ul class="documentList"> <?php $queryActivate = new httpQueryStr(); if (is_array($allDocuments)) { foreach ($allDocuments as $index => $document) { // On retire le chemin courant vers la racine FTP $document = str_replace(getFtpRoot(), '', $document); // Si le fichier n'est pas activé if (!in_array($document, $allDbDocs)) { // Constitution de la requête http $queryActivate->add(array('indexForm' => $index, 'active' => $document)); ?> <li id="<?php echo $index; ?> "> <!-- Activer --> <a href="<?php echo '?' . $queryActivate . '#' . $index; ?> " class="activer" title="activer"></a> <img src="/img/icon-pdf-36x36.png" width="24" height="24" alt="" />
<?php if ($httpQuery->has('delete')) { if ($db->deleteDocumentEntry($httpQuery->delete) < 1) { $error = "L'accès n'existe plus."; } else { $error = "L'accès a bien été nettoyé"; } } if ($httpQuery->has('deleteArchive')) { if ($db->deleteAccessEntry($httpQuery->deleteArchive) < 1) { $error = "L'accès n'existe plus."; } else { $error = "L'accès a bien été nettoyé"; } } // Tous les documents présent sur l'espace ftp $allDocuments = readdir_recursive(getFtpRoot() . '/', array('pdf')); // Tous les zips présent sur l'espace ftp $allArchives = readdir_recursive(getFtpRoot() . '/', array('zip')); // Tous les documents activés dans la base $allDocumentAccess = new AdminDocumentAccessListByType($db); // Toutes les archives activées dans la base $allArchivesAccess = new AdminArchiveAccessListByType($db);