[ Script ] Taille Max Par Fichier Pour Téléchargement
3 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
[ Script ] Taille Max Par Fichier Pour Téléchargement
Vla un petit script pratique pour connaître la taille maximum autorisée par fichier pour le téléchargement de fichier.
Je pense que cela, sera utile et pourra servir à certains d'entre nous.
Ce script ce base sur la configuration du serveur et utilise ces variables:
- memory_limit
- post_max_size
- upload_max_filesize
Convertit les valeurs extraites du fichier de configuration (php.ini).
* utilisé dans la fonction taille_max_dl_fichier()
En fonction de la configuration du serveur et du nombre de fichier à télécharger on calcul la taille max possible par fichier.
* une marge peut être utilisée ou non pour indiquer que le formulaire est susceptible de retourner d'autre éléments
(on indique la taille en octets à soustraire, 0 si aucune marge souhaitée)
* par rapport à memory_limit, on laisse 1,5 fois de place pour le traitement des fichiers en simultanées
La fonction traite automatiquement l'affichage de l'unité, en fonction de la taille.
Utilisation des fonctions.
* convert_taille() n'est pas nécessaire s'il le resultat n'est pas prévu pour l'affichage
Voila. Si vous voyez des erreurs n'hésitez pas.
S'il faut plus de commentaires, j'essayerais de faire mieux
note:
Le script calcule la taille maximum que peut faire chaque fichier pour le dl, mais il se base également sur memory_limit pour un traitement simultanée des fichiers téléchargés.
Il est donc possible de modifier le degré de marge pour la mémoire vive.
(augmenter / diminuer / supprimer l'adition du 1.5) : $taille_max_dl = $post_max_size / ($nb_fichier + 1.5);
Il est donc possible d'enlever entièrement ce paramètre si les fichiers ne seront pas traités en même temps pour avoir une plus grande taille par fichier autorisé.
Dans tout les cas, la taille de téléchargement par fichier ne pourra pas dépasser upload_max_filesize.
Je pense que cela, sera utile et pourra servir à certains d'entre nous.
Ce script ce base sur la configuration du serveur et utilise ces variables:
- memory_limit
- post_max_size
- upload_max_filesize
* utilisé dans la fonction taille_max_dl_fichier()
- Code: Tout sélectionner
// retourne la valeur en octet/bytes
function return_bytes($val)
{
$val = trim($val);
$unite = strtolower($val{strlen($val)-1});
switch($unite)
{
case 'g':
$val *= 1024;
case 'm':
$val *= 1024;
case 'k':
$val *= 1024;
}
return $val;
}
* une marge peut être utilisée ou non pour indiquer que le formulaire est susceptible de retourner d'autre éléments
(on indique la taille en octets à soustraire, 0 si aucune marge souhaitée)
* par rapport à memory_limit, on laisse 1,5 fois de place pour le traitement des fichiers en simultanées
- Code: Tout sélectionner
function taille_max_dl_fichier($nb_fichier,$marge = 512000)
{
$post_max_size = @ini_get('post_max_size');
if(empty($post_max_size))
{
$post_max_size = @get_cfg_var('post_max_size');
if(empty($post_max_size))
$post_max_size = '6M';
}
$memory_limit = @ini_get('memory_limit');
if(empty($memory_limit))
{
$memory_limit = @get_cfg_var('memory_limit');
if(empty($memory_limit))
$memory_limit = '6M';
}
$upload_max_filesize = @ini_get('upload_max_filesize');
if(empty($upload_max_filesize))
{
$upload_max_filesize = @get_cfg_var('upload_max_filesize');
if(empty($upload_max_filesize))
$upload_max_filesize = '2M';
}
$post_max_size = return_bytes($post_max_size);
$memory_limit = return_bytes($memory_limit);
$upload_max_filesize = return_bytes($upload_max_filesize);
if($memory_limit < $post_max_size)
$post_max_size = $memory_limit;
// on enleve 500 Ko pour le reste
$post_max_size = $post_max_size - $marge;
$memory_limit = $memory_limit - $marge;
$taille_max_dl = $post_max_size / ($nb_fichier + 1.5);
if($taille_max_dl > $upload_max_filesize)
$taille_max_dl = $upload_max_filesize;
return $taille_max_dl;
}
- Code: Tout sélectionner
// permet de convertir à l'unité la plus proche pour l'affichage
function convert_taille($taille_octet)
{
if($taille_octet < 1024)
return $taille_octet.' Oc.';
elseif($taille_octet >= 1024 && $taille_octet < 1048576)
return round($taille_octet/1024,2).' Ko.';
elseif($taille_octet >= 1048576 && $taille_octet < 1073741824)
return round(($taille_octet/1024)/1024,2).' Mo.';
elseif($taille_octet >= 1073741824)
return round((($taille_octet/1024)/1024)/1024,2).' Go.';
}
* convert_taille() n'est pas nécessaire s'il le resultat n'est pas prévu pour l'affichage
- Code: Tout sélectionner
echo convert_taille(taille_max_dl_fichier(4));
Voila. Si vous voyez des erreurs n'hésitez pas.
S'il faut plus de commentaires, j'essayerais de faire mieux
note:
Le script calcule la taille maximum que peut faire chaque fichier pour le dl, mais il se base également sur memory_limit pour un traitement simultanée des fichiers téléchargés.
Il est donc possible de modifier le degré de marge pour la mémoire vive.
(augmenter / diminuer / supprimer l'adition du 1.5) : $taille_max_dl = $post_max_size / ($nb_fichier + 1.5);
Il est donc possible d'enlever entièrement ce paramètre si les fichiers ne seront pas traités en même temps pour avoir une plus grande taille par fichier autorisé.
Dans tout les cas, la taille de téléchargement par fichier ne pourra pas dépasser upload_max_filesize.
Dernière édition par thierry8 le Mer Juin 07, 2006 7:17, édité 1 fois.
Il est très pratique pour ne plus avoir à ce soucier de la configuration du serveur. Si vous avez un formulaire avec la possibilité de télécharger par exemple 4 images en même temps, ce dernier calculera la taille max que peu faire chaque fichier.
J'ai trouvé cela utile et pratique.
Avec ce script, il ne devrait plus y avoir d'erreur de memory_limit, de post_max_size et/ou de upload_max_filesize.
J'ai trouvé cela utile et pratique.
Avec ce script, il ne devrait plus y avoir d'erreur de memory_limit, de post_max_size et/ou de upload_max_filesize.
3 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Les albums web Picasa passent à 1 Go de stockage
- Photos satellite des incendies en Grèce dans Google Earth
- Google AdWords introduit le concept de niveau de qualité
- Le simulateur de vol de Google Earth
- Chercher des fichiers KML dans Google Earth
- Suivre le Tour de France 2007 en 3D dans Google Earth
- Nouvelle version de GoogleStats : v1.1
- Carte du Tour de France 2008 dans Google Earth
- Afficher le PageRank en entier dans Firefox (barre d'outils Google)
- Article sur le fichier .htaccess
Consultez la description détaillée des produits ou services de Google suivants : Google Web Accelerator
- Tester le type de redirection
Cet outil vous permet de tester la validité d'un lien pour le référencement. Il vous indique la nature du lien (lien en dur, redirection bien gérée par les moteurs ou redirection mal gérée par les moteurs).
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités



le forum