web-dev-qa-db-fra.com

Comment réduire la taille maximale du fichier de téléchargement?

Sur mon site Web, de nombreux auteurs peuvent publier des messages, mais certains d'entre eux téléchargent des images d'une taille supérieure à 1 Mo. Je souhaite réduire la taille maximale du téléchargement à 500 ko.

4
AboSami

Vous pouvez interdire les chargements d'une taille spécifique (ou pour d'autres raisons) à l'aide du hook wp_handle_upload_prefilter utilisé dans la fonction wp_handle_upload() .

C'est le tableau de fichiers passé, c'est un élément unique dans le PHP standard superglobal $_FILES celui qui est documenté dans le PHP Manual: POST méthode uploadée .

Il suffit de créer une fonction et de l'ajouter au filtre. À l’intérieur de votre crochet, vérifiez la taille du fichier et définissez $file['error'] sur votre message d’erreur, par exemple "Les fichiers dont la taille est supérieure à X octets ne peuvent pas être téléchargés".

add_filter('wp_handle_upload_prefilter', function($file) {
    $size = $file['size'];
    if ($size > 500 * 1024) {
       $file['error'] = '"Files larger than X bytes are prevented from uploads.';
    }
    return $file;
});

Cette méthode n'autorise pas techniquement le téléchargement, ce qui signifie que votre serveur reçoit toujours les données de téléchargement du fichier à partir du navigateur de l'utilisateur. C'est juste jeté après.

Pour empêcher les téléchargements d'une certaine taille au niveau du serveur, vous devez configurer votre serveur en conséquence pour ce qui dépend de ce que vous utilisez.

6
hakre