Page 1 sur 1

Amélioration de kcfinder en limitant le nombre d'uploads

Posté : 24 mars 2014, 16:34
par eerriicc46
Bonjour,
J'utilise kcfinder (openSource) associé à ckeditor. Dans le but d'éviter des uploads excessifs j'ai développé un petit script qui cumule la taille des fichiers d'un dossier. Jusque là aucun souci.
Le fichier chargé de l'upload se trouve : kcfinder/core/class/uploader.php et j'ai commencé à le modifier à la ligne 310.
A cette étape la variable $dir contient le chemin complet sur le server vers le dossier "images" à savoir /homez/bla/bla/kcfinder/uplaod/images

public function upload() {
$config = &$this->config;
$file = &$this->file;
$url = $message = "";

if ($config['disabled'] || !$config['access']['files']['upload']) {
if (isset($file['tmp_name'])) @unlink($file['tmp_name']);
$message = $this->label("You don't have permissions to upload files.");

} elseif (true === ($message = $this->checkUploadedFile())) {
$message = "";

$dir = "{$this->typeDir}/";
//********************************************************************************************************************
echo'<script type="text/javascript">alert("path : '.$dir.'")</script>';//path : /homez/bla/bla/kcfinder/uplaod/images

$mydirectory = opendir($dir) or die('Erreur');
$size=0;
while($entry = readdir($mydirectory)) {
if($entry != '.' && $entry != '..') {
$size+=filesize($entry);
}
}

closedir($dir);

echo'<script type="text/javascript">alert("taille : '.$size.'")</script>';
//affiche taille : 0 C'est là que je craque parce qu'à force de faire des essais j'en suis en réalité à quelques 187 fichiers et plusieurs centaines de Ko!!!!
//**********************************************************************************************************************************************************
J'ai fait des essais plus loin dans le code où la variable $dir prend pour valeur le chemin relatif du dossier "images" mais j'obtiens le même résultat : 0
Merci pour votre contribution,
Eric

Re: Amélioration de kcfinder en limitant le nombre d'uploads

Posté : 13 avr. 2014, 08:33
par morganK
As-tu vérifier que readdir() ne te renvoie pas FALSE ? Il semblerait que

Code : Tout sélectionner

while (false !== ($entry = readdir($handle))) { //ton code }
soit plus approprié.