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=''){ ...@@ -416,37 +416,72 @@ function fixer_fichier_upload($file, $mode=''){
* @param array $infos * @param array $infos
* @return bool|mixed|string * @return bool|mixed|string
*/ */
function verifier_taille_document_acceptable($infos){ function verifier_taille_document_acceptable(&$infos){
// si ce n'est pas une image // si ce n'est pas une image
if (!$infos['type_image']) { if (!$infos['type_image']) {
if (_DOC_MAX_SIZE > 0 if (defined('_DOC_MAX_SIZE') AND _DOC_MAX_SIZE > 0 AND $infos['taille'] > _DOC_MAX_SIZE*1024){
AND $infos['taille'] > _DOC_MAX_SIZE*1024) return _T('medias:info_doc_max_poids',
return _T('medias:info_doc_max_poids', array('maxi' => taille_en_octets(_DOC_MAX_SIZE*1024), 'actuel' => taille_en_octets($infos['taille']))); array(
'maxi' => taille_en_octets(_DOC_MAX_SIZE*1024),
'actuel' => taille_en_octets($infos['taille'])
)
);
}
} }
// si c'est une image // si c'est une image
else { else {
if (_IMG_MAX_SIZE > 0 if ((defined('_IMG_MAX_WIDTH') AND _IMG_MAX_WIDTH AND $infos['largeur']>_IMG_MAX_WIDTH)
AND $infos['taille'] > _IMG_MAX_SIZE*1024) OR (defined('_IMG_MAX_HEIGHT') AND _IMG_MAX_HEIGHT AND $infos['hauteur']>_IMG_MAX_HEIGHT) ){
return _T('medias:info_image_max_poids', array('maxi' => taille_en_octets(_IMG_MAX_SIZE*1024), 'actuel' => taille_en_octets($infos['taille']))); $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 : '*';
if (_IMG_MAX_WIDTH * _IMG_MAX_HEIGHT
AND ($infos['largeur'] > _IMG_MAX_WIDTH // pas la peine d'embeter le redacteur avec ca si on a active le calcul des miniatures
OR $infos['hauteur'] > _IMG_MAX_HEIGHT)) // 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( array(
'maxi' => 'maxi' =>
_T('info_largeur_vignette', _T('info_largeur_vignette',
array('largeur_vignette' => _IMG_MAX_WIDTH, array('largeur_vignette' => $max_width,
'hauteur_vignette' => _IMG_MAX_HEIGHT)), 'hauteur_vignette' => $max_height)),
'actuel' => 'actuel' =>
_T('info_largeur_vignette', _T('info_largeur_vignette',
array('largeur_vignette' => $infos['largeur'], array('largeur_vignette' => $infos['largeur'],
'hauteur_vignette' => $infos['hauteur'])) '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 // verifier en fonction du mode si une fonction est proposee
......
<paquet <paquet
prefix="medias" prefix="medias"
categorie="multimedia" categorie="multimedia"
version="2.9.15" version="2.10.0"
etat="stable" etat="stable"
compatibilite="[3.0.0;3.1.*]" compatibilite="[3.0.0;3.1.*]"
logo="prive/themes/spip/images/portfolio-32.png" 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