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

Report de r73073 : une coquille empechait la prise en charge des svg à...

Report de r73073 : une coquille empechait la prise en charge des svg à l'upload (lecture des dimensions, protection des js inclus) (Sebastien)
parent 4b9718ce
Aucune branche associée trouvée
Étiquettes v2.8.15
Aucune requête de fusion associée trouvée
......@@ -110,7 +110,7 @@ function renseigner_taille_dimension_image($fichier,$ext){
spip_log ("Echec copie du fichier $fichier");
return _T('medias:erreur_copie_fichier',array('nom'=> $fichier));
}
// chercher une fonction de description
$meta = array();
if ($metadata = charger_fonction($ext,"metadata",true)){
......
......@@ -29,43 +29,45 @@ include_spip('inc/autoriser');
* @param string $file
* @return array Tableau (largeur, hauteur)
*/
function medata_svg_dist($file){
function metadata_svg_dist($file){
$meta = array();
$texte = spip_file_get_contents($file);
// Securite si pas autorise : virer les scripts et les references externes
// sauf si on est en mode javascript 'ok' (1), cf. inc_version
if ($GLOBALS['filtrer_javascript'] < 1
AND !autoriser('televerser','script')) {
if ($GLOBALS['filtrer_javascript']<1
AND !autoriser('televerser', 'script')
){
include_spip('inc/texte');
$new = trim(safehtml($texte));
// petit bug safehtml
if (substr($new,0,2) == ']>') $new = ltrim(substr($new,2));
if ($new != $texte) ecrire_fichier($file, $texte = $new);
if (substr($new, 0, 2)==']>') $new = ltrim(substr($new, 2));
if ($new!=$texte) ecrire_fichier($file, $texte = $new);
}
$width = $height = 150;
if (preg_match(',<svg[^>]+>,', $texte, $s)) {
if (preg_match(',<svg[^>]+>,', $texte, $s)){
$s = $s[0];
if (preg_match(',\WviewBox\s*=\s*.\s*(\d+)\s+(\d+)\s+(\d+)\s+(\d+),i', $s, $r)){
$width = $r[3];
$height = $r[4];
} else {
// si la taille est en centimetre, estimer le pixel a 1/64 de cm
if (preg_match(',\Wwidth\s*=\s*.(\d+)([^"\']*),i', $s, $r)){
if ($r[2] != '%') {
$width = $r[1];
if ($r[2] == 'cm') $width <<=6;
}
$height = $r[4];
}
if (preg_match(',\Wheight\s*=\s*.(\d+)([^"\']*),i', $s, $r)){
if ($r[2] != '%') {
$height = $r[1];
if ($r[2] == 'cm') $height <<=6;
else {
// si la taille est en centimetre, estimer le pixel a 1/64 de cm
if (preg_match(',\Wwidth\s*=\s*.(\d+)([^"\']*),i', $s, $r)){
if ($r[2]!='%'){
$width = $r[1];
if ($r[2]=='cm') $width <<= 6;
}
}
if (preg_match(',\Wheight\s*=\s*.(\d+)([^"\']*),i', $s, $r)){
if ($r[2]!='%'){
$height = $r[1];
if ($r[2]=='cm') $height <<= 6;
}
}
}
}
}
$meta['largeur'] = $width;
$meta['hauteur'] = $height;
......
<paquet
prefix="medias"
categorie="multimedia"
version="2.8.14"
version="2.8.15"
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