Skip to content
Extraits de code Groupes Projets
Valider cade1664 rédigé par cedric@yterium.com's avatar cedric@yterium.com
Parcourir les fichiers

Quand une largeur maxi ou hauteur maxi d'image 'est definie, plutot que de...

Quand une largeur maxi ou hauteur maxi d'image 'est definie, plutot que de generer une erreur, on reduit automatiquement le fichier uploade si l'option 'Générer automatiquement les miniatures des images' a été activée. Du coup il faut verifier la taille (en ko) apres, car si on a reduit l'image elle a des chances d'etre moins lourde aussi.
parent 56048e18
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -416,37 +416,72 @@ function fixer_fichier_upload($file, $mode=''){
* @param array $infos
* @return bool|mixed|string
*/
function verifier_taille_document_acceptable($infos){
function verifier_taille_document_acceptable(&$infos){
// si ce n'est pas une image
if (!$infos['type_image']) {
if (_DOC_MAX_SIZE > 0
AND $infos['taille'] > _DOC_MAX_SIZE*1024)
return _T('medias:info_doc_max_poids', array('maxi' => taille_en_octets(_DOC_MAX_SIZE*1024), 'actuel' => taille_en_octets($infos['taille'])));
if (defined('_DOC_MAX_SIZE') AND _DOC_MAX_SIZE > 0 AND $infos['taille'] > _DOC_MAX_SIZE*1024){
return _T('medias:info_doc_max_poids',
array(
'maxi' => taille_en_octets(_DOC_MAX_SIZE*1024),
'actuel' => taille_en_octets($infos['taille'])
)
);
}
}
// si c'est une image
else {
if (_IMG_MAX_SIZE > 0
AND $infos['taille'] > _IMG_MAX_SIZE*1024)
return _T('medias:info_image_max_poids', array('maxi' => taille_en_octets(_IMG_MAX_SIZE*1024), 'actuel' => taille_en_octets($infos['taille'])));
if (_IMG_MAX_WIDTH * _IMG_MAX_HEIGHT
AND ($infos['largeur'] > _IMG_MAX_WIDTH
OR $infos['hauteur'] > _IMG_MAX_HEIGHT))
if ((defined('_IMG_MAX_WIDTH') AND _IMG_MAX_WIDTH AND $infos['largeur']>_IMG_MAX_WIDTH)
OR (defined('_IMG_MAX_HEIGHT') AND _IMG_MAX_HEIGHT AND $infos['hauteur']>_IMG_MAX_HEIGHT) ){
$max_width = (defined('_IMG_MAX_WIDTH') AND _IMG_MAX_WIDTH) ? _IMG_MAX_WIDTH : '*';
$max_height = (defined('_IMG_MAX_HEIGHT') AND _IMG_MAX_HEIGHT) ? _IMG_MAX_HEIGHT : '*';
// pas la peine d'embeter le redacteur avec ca si on a active le calcul des miniatures
// on met directement a la taille maxi a la volee
if (isset($GLOBALS['meta']['creer_preview']) AND $GLOBALS['meta']['creer_preview']=='oui'){
include_spip('inc/filtres');
$img = filtrer('image_reduire', $infos['fichier'], $max_width, $max_height);
$img = extraire_attribut($img, 'src');
$img = supprimer_timestamp($img);
if (@file_exists($img) AND $img!==$infos['fichier']){
spip_unlink($infos['fichier']);
@rename($img, $infos['fichier']);
$size = @getimagesize($infos['fichier']);
$infos['largeur'] = $size[0];
$infos['hauteur'] = $size[1];
$infos['taille'] = @filesize($infos['fichier']);
}
}
return _T('medias:info_logo_max_taille',
if ((defined('_IMG_MAX_WIDTH') AND _IMG_MAX_WIDTH AND $infos['largeur']>_IMG_MAX_WIDTH)
OR (defined('_IMG_MAX_HEIGHT') AND _IMG_MAX_HEIGHT AND $infos['hauteur']>_IMG_MAX_HEIGHT) ){
return _T('medias:info_logo_max_taille',
array(
'maxi' =>
_T('info_largeur_vignette',
array('largeur_vignette' => _IMG_MAX_WIDTH,
'hauteur_vignette' => _IMG_MAX_HEIGHT)),
'actuel' =>
_T('info_largeur_vignette',
array('largeur_vignette' => $infos['largeur'],
'hauteur_vignette' => $infos['hauteur']))
));
'maxi' =>
_T('info_largeur_vignette',
array('largeur_vignette' => $max_width,
'hauteur_vignette' => $max_height)),
'actuel' =>
_T('info_largeur_vignette',
array('largeur_vignette' => $infos['largeur'],
'hauteur_vignette' => $infos['hauteur']))
));
}
}
if (defined('_IMG_MAX_SIZE') AND _IMG_MAX_SIZE > 0 AND $infos['taille'] > _IMG_MAX_SIZE*1024){
return _T('medias:info_image_max_poids',
array(
'maxi' => taille_en_octets(_IMG_MAX_SIZE*1024),
'actuel' => taille_en_octets($infos['taille']
)
)
);
}
}
// verifier en fonction du mode si une fonction est proposee
......
<paquet
prefix="medias"
categorie="multimedia"
version="2.9.15"
version="2.10.0"
etat="stable"
compatibilite="[3.0.0;3.1.*]"
logo="prive/themes/spip/images/portfolio-32.png"
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter