Je souhaite empêcher les utilisateurs de mon blog de télécharger des images de grande taille. Et je veux dire large en px pas MB. Max Upload est réglé sur 8 Mo, ce qui devrait être correct, mais je ne veux pas empêcher le téléchargement d'images de plus de 3000x3000px.
Y a-t-il un crochet qui me manque et pour lequel je pourrais écrire une fonction permettant d'indiquer aux utilisateurs que leur image est trop grande?
Vous avez plusieurs solutions disponibles ici:
Si vous ne souhaitez pas stocker d’énormes quantités de données d’image sur votre espace Web, je vous recommande le plug-in Imsanity . Cela réduit automatiquement les images téléchargées, même si elles sont trop grandes.
Dans ce cas, l'utilisateur a plus de travail à faire, car il devra réduire les images lui-même. Vous pouvez filtrer le wp_handle_upload_prefilter
:
add_filter('wp_handle_upload_prefilter', 'f711_image_size_prevent');
function f711_image_size_prevent($file) {
$size = $file['size'];
$size = $size / 1024; // Calculate down to KB
$type = $file['type'];
$is_image = strpos($type, 'image');
$limit = 5000; // Your Filesize in KB
if ( ( $size > $limit ) && ($is_image !== false) ) {
$file['error'] = 'Image files must be smaller than '.$limit.'KB';
}
return $file;
}
Celui-ci est assez simple, il vous suffit de définir max_upload_size
dans votre .htaccess
ou php.ini
.