11548 sujets

JavaScript, DOM et API Web HTML5

Salut @ tous !

J'utilise le plugin jQuery Uploadify pour uploader des photos sur mon serveur.

Chaque membre a droit à 10 mo d'espace de stockage.
Je vérifie avant le lancement de l'upload si cette limite est atteinte.

Ficher JS :

'onSelect' : function(event, ID, fileObj)
    {
    $.ajax(
        {
        type : 'POST',
        url : 'espace_stockage_dispo.php',
        async : false, // Activer le mode synchorne pour empêcher l'upload avant l'exécution du script PHP
        success : function(msg)
            {
            if(msg == 'erreur')
                {
                alert('Espace de stockage plein !');
                $(this).uploadifyClearQueue();
                }
            }
        });

Fichier espace_stockage_dispo.php :
$poids_rep_photo = calcul_poids_repertoire('../photos/membre_'.$_COOKIE['id_membre_upload'].'/', $recursive = FALSE);
if($poids_rep_photo > $_COOKIE['taille_espace_stockage'])
    {
    echo 'erreur';
    }
else
    {
    echo 'ok';
    }

// -----------------------------------------------------------------------------

function calcul_poids_repertoire($path, $recursive = TRUE)
    {
    $result = 0;
    if(!is_dir($path) || !is_readable($path))
        {
        return 0;
        }
    else
        {
        $fd = dir($path);
        while($file = $fd->read())
            {
            if(($file != ".") && ($file != ".."))
                {
                if(@is_dir("$path/$file/"))
                    {
                    $result += $recursive?DirSize("$path/$file/"):0;
                    }
                else
                    {
                    $result += filesize("$path/$file");
                    }
                }
            }
        $fd->close();
        return $result;
        }
    }

Quand la limite de stockage est atteinte le message "Espace de stockage plein !" s'affiche bien, la progress bar ne s'affiche pas, mais la photo est quand même uploadée Smiley eek !

Je ne comprends pas tout là !
Merci de m'aider...
Modifié par 6ber6ou (08 Dec 2011 - 20:14)
Modérateur
Bonjour,

Une mise en garde. Tu passes par les cookies via $_COOKIE pour stocker et utiliser le id du membre connecté et son espace de stockage autorisé. Il faut savoir que n'importe qui peut modifier ses cookies dans son navigateur et y mettre ce qu'il veut. Il s'agit donc d'une faille de sécurité assez importante.

Je te propose d'utiliser les sessions à la place. Ces variables sont stockées côté serveur et non côté client comme c'est le cas des cookies.
salut...

Je ne connaissais pas Uploadify... du coup je l'ai regardé... et je vais surement l'utiliser Smiley smile

en revanche... je pense que tu ne fais pas le test au bon endroit....

Vu que tu ne met pas la partie code d'uploadify c'est pas facile...

Bon moi je dirai que ce test doit ce faire en même temps ou plutot au même endroit que le check d'uploadify qui permet de savoir si un fichier existe...

En effet le check, retourne si le fichier est présent ou non et s'il est présent du coup il n'upload pas... je pense que tu peux utiliser cette partie pour vérifier si il y a de la place ou pas et du coup faire un retour false de manière à ne pas télécharger l'image...

ce qui devrait libérer la focntion clearqueue... qui dans ton cas ne marche aps car les images se téléchargent quand meme....
Tony Monast a écrit :

Une mise en garde. Tu passes par les cookies via $_COOKIE pour stocker et utiliser le id du membre connecté et son espace de stockage autorisé. Il faut savoir que n'importe qui peut modifier ses cookies dans son navigateur et y mettre ce qu'il veut. Il s'agit donc d'une faille de sécurité assez importante.

Je te propose d'utiliser les sessions à la place. Ces variables sont stockées côté serveur et non côté client comme c'est le cas des cookies.

Si je mets l'ID du membre et la taille de l'espace de stockage dans un input de type hidden, est-ce que c'est mieux ?