gestion de la taille des fichiers pour ne pas faire exploser le serveur

This commit is contained in:
cy_altern 2021-01-25 03:04:07 +01:00
parent 21e0793c54
commit edf359e50c
2 changed files with 16 additions and 4 deletions

View file

@ -3,10 +3,13 @@
<ul> <ul>
<BOUCLE_corpus(DATA){source ls, #CHEMIN{tmp}/corpus/*}{par basename}> <BOUCLE_corpus(DATA){source ls, #CHEMIN{tmp}/corpus/*}{par basename}>
<li> <li>
#SET{liste_lignes,#LISTE{1}} #SET{liste_lignes,#LISTE{1}} #SET{trop_gros,100000000} [(#REM) trop gros = 100Mo ]
#SET{nb_lignes, #FILE|nombre_ligne} [(#GET{nb_lignes}|!={1}|oui) #SET{liste_lignes,#LISTE{1,#GET{nb_lignes}}}] #SET{nb_lignes, #FILE|nombre_ligne} [(#GET{nb_lignes}|!={1}|oui) #SET{liste_lignes,#LISTE{1,#GET{nb_lignes}}}]
<h3 class="spip">[(#FILE|basename)] : [(#GET{nb_lignes}) [(#GET{nb_lignes}|singulier_ou_pluriel{page,pages})]]</h3> <h3 class="spip[ (#SIZE|>{#GET{trop_gros}}|oui)non_traite]">
<BOUCLE_2lignes(DATA){liste #GET{liste_lignes}}> [(#FILE|basename)] : [(#GET{nb_lignes}) [(#GET{nb_lignes}|singulier_ou_pluriel{page,pages})]] <small>([(#SIZE|human_filesize)o])</small>
[ (#SIZE|>{#GET{trop_gros}}|oui)<div>fichier trop gros pour traitement basique</div>]
</h3>
<BOUCLE_2lignes(DATA){liste #GET{liste_lignes}}{si #SIZE|<{#GET{trop_gros}}}>
<div> <div>
<h4 class="aff_masq">Ligne #VALEUR:</h4> <h4 class="aff_masq">Ligne #VALEUR:</h4>
<div class="details"> <div class="details">
@ -27,7 +30,7 @@
[(#CLE|=={htmlBytes}|non) [(#CLE|=={htmlBytes}|non)
<div class="aff_masq">[(#CLE)] : </div> <div class="aff_masq">[(#CLE)] : </div>
<div class="details"> <div class="details">
[(#VALEUR|print|replace{<,&lt;}|replace{>,&gt;})] [(#VALEUR|print|replace{<br />,§§}|replace{<,&lt;}|replace{>,&gt;}|replace{§§,<br>})]
</div> </div>
] ]
</li> </li>
@ -68,4 +71,7 @@
width: 100%; width: 100%;
height: 200px; height: 200px;
} }
.non_traite {
color: #777;
}
</style> </style>

View file

@ -48,3 +48,9 @@ function affiche_ligne($fichier, $num) {
} }
return 'Erreur : nombre de lignes du fichier '.$fichier.' inférieur à '.$num; return 'Erreur : nombre de lignes du fichier '.$fichier.' inférieur à '.$num;
} }
function human_filesize($bytes, $decimals = 2) {
$sz = 'BKMGTP';
$factor = floor((strlen($bytes) - 1) / 3);
return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$sz[$factor];
}