diff --git a/action/ajouter_documents.php b/action/ajouter_documents.php index 935ca3f6b685a99d5ee7351b4fbd0f9183eb0508..a47eeba82dd607c38c1fd13bda90f35bc0e6aa7c 100644 --- a/action/ajouter_documents.php +++ b/action/ajouter_documents.php @@ -117,6 +117,12 @@ function action_ajouter_un_document_dist($id_document, $file, $objet, $id_objet, # NB: dans les bonnes conditions (fichier autorise et pas trop gros) # $a['fichier'] est une copie locale du fichier + $infos = renseigner_taille_dimension_image($champs['fichier'],$champs['extension'], true); + // on ignore erreur eventuelle sur $infos car on est distant, ca ne marche pas forcement + if (is_array($infos)){ + $champs = array_merge($champs, $infos); + } + unset($champs['type_image']); } // on ne doit plus arriver ici, car l'url distante a ete verifiee a la saisie ! diff --git a/inc/renseigner_document.php b/inc/renseigner_document.php index 0fa01ac336b1fac32fde8248af894ccdd699abe4..d3573be39b17fc48339e57ced6a5ba3e0892d7ea 100644 --- a/inc/renseigner_document.php +++ b/inc/renseigner_document.php @@ -88,12 +88,14 @@ function renseigner_source_distante($source){ * Le fichier à examiner * @param string $ext * L'extension du fichier à examiner + * @param bool $distant + * Indique que le fichier peut etre distant, on essaiera alors d'en recuperer un bout pour en lire les meta infos * @return array|string $infos * * - Si c'est une chaîne, c'est une erreur * - Si c'est un tableau, l'ensemble des informations récupérées du fichier */ -function renseigner_taille_dimension_image($fichier,$ext){ +function renseigner_taille_dimension_image($fichier,$ext,$distant=false){ $infos = array( 'largeur'=>0, @@ -101,14 +103,30 @@ function renseigner_taille_dimension_image($fichier,$ext){ 'type_image'=>'', 'taille'=>0 ); - + // Quelques infos sur le fichier if ( !$fichier OR !@file_exists($fichier) OR !$infos['taille'] = @intval(filesize($fichier))) { + + if ($distant){ + // on ne saura pas la taille + unset($infos['taille']); + + // recuperer un debut de fichier 512ko semblent suffire + $tmp = _DIR_TMP . md5($fichier); + $res = recuperer_url($fichier,array('file'=>$tmp,'taille_max'=>512*1024)); + if (!$res){ + spip_log ("Echec copie du fichier $fichier"); + return _T('medias:erreur_copie_fichier',array('nom'=> $fichier)); + } + $fichier = $tmp; + } + else { spip_log ("Echec copie du fichier $fichier"); return _T('medias:erreur_copie_fichier',array('nom'=> $fichier)); + } } // chercher une fonction de description diff --git a/paquet.xml b/paquet.xml index 8c7fda6892a9ceb303dcc19c98c161c2a54292d2..d3af518b3c198cecb19b6158ea4e24ff5f21e1f0 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,7 +1,7 @@ <paquet prefix="medias" categorie="multimedia" - version="2.9.5" + version="2.9.6" etat="stable" compatibilite="[3.0.0;3.1.*]" logo="prive/themes/spip/images/portfolio-32.png"