2017-06-25 4 views
0

J'utilise Ajax PHP pour télécharger des images dans un dossier, mais je veux limiter cet espace à 50 Mo. Je pense que je suis sur la bonne voie, mais le code ne fonctionne pas pour moi. Si vous pouvez m'aider.l'image PHP AJAX télécharger - je dois limiter quota à un dossier

Je pense que l'erreur doit être « si (taille $> 52428800) { »

Merci

/*** Calling from ajax to add the gallery new an image****/ 
public function Addgallery() { 
      $size = 0; 
      $files= glob($directory.$folder_gallery.'/*'); 
      foreach($files as $path){ 
       is_file($path) && $size += filesize($path); 
       is_dir($path) && get_dir_size($path); 
      } 
      return $size; 
    if ($size > 52428800) { 
     echo alert("Your quota on disk does not allow the upload of images. Please erase images that you do not use."); 
    } else { 
     $this->_upload_file($this->_base_path .'/images/gallery/', array('.png', '.jpg', '.jpeg', '.gif'), 'addgallery'); 

    } 

} 
+0

Quelle est cette syntaxe? 'is_file ($ path) && size = + taille du fichier ($ path);' frappe que je sais ce qu'il fait Je n'aime pas ça, je préfère '$ size = is_file ($ path)? $ size + filesize ($ path): $ size; '- juste en train de dire. Ou juste une ligne si, ressemble juste à une faute de frappe pour moi, mais je suis la vieille école – ArtisticPhoenix

+0

Cela dit, si chaque "utilisateur" avait son propre dossier, ne pourriez-vous pas simplement obtenir la taille totale de ce dossier? – ArtisticPhoenix

+0

Oui, je définis l'utilisateur du dossier avec $ directory. $ Folder_gallery.' Il est défini dans le code ci-dessus. – EmanuelAA

Répondre

1

Vous retournez $size en ligne 9. Tout en dessous de la déclaration de retour est sautée .

Si vous déplacez return $size en dessous du reste, votre code devrait fonctionner.

/*** Calling from ajax to add the gallery new an image****/ 
public function Addgallery() { 
    $size = 0; 
    $files = glob($directory.$folder_gallery.'/*'); 
    foreach($files as $path){ 
     is_file($path) && $size += filesize($path); 
     is_dir($path) && get_dir_size($path); 
    } 
    if ($size > 52428800){ 
     echo alert("Your quota on disk does not allow the upload of images. Please erase images that you do not use."); 
    } else { 
     $this->_upload_file($this->_base_path .'/images/gallery/', array('.png', '.jpg', '.jpeg', '.gif'), 'addgallery'); 
    } 
    return $size; 
} 

Note: alert() est pas une fonction PHP, juste au cas où vous ne l'avez pas créé cette fonction