Changeset 84567 in spip-zone


Ignore:
Timestamp:
Sep 11, 2014, 10:00:02 AM (6 years ago)
Author:
marcimat@…
Message:

Ce que je croyais être une erreur sur l'ancien script, à savoir que parfois un 'Content Type' était envoyé sans valeur
(mime type non connu lorsque le document n'est pas dans spip_documents), n'en était pas vraiment une.

Firefox par exemple n'appréciait pas de recevoir le contenu d'un pdf si l'expression content type n'était pas présente (même vide).
Donc voilà, le content type est maintenant toujours envoyé.

Du coup, on peut aussi par exemple maintenant en forcer un avec $Document->set_mime_type('application/pdf') dans le pipeline.

Location:
_plugins_/acces_restreint/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/acces_restreint/trunk/action/api_docrestreint.php

    r84566 r84567  
    224224        $chemin_fichier = $Document->get_chemin_complet_fichier();
    225225
     226        // toujours envoyer un content type, meme vide !
     227        header("Content-Type: " . $Document->get_mime_type());
     228
    226229        // document décrit dans la table spip_documents ?
    227230        if ($doc = $Document->get_spip_document()) {
    228                 if ($doc['mime_type']) {
    229                         header("Content-Type: " . $doc['mime_type']);
    230                 }
    231 
    232231                // pour les images ne pas passer en attachment
    233232                // sinon, lorsqu'on pointe directement sur leur adresse,
     
    301300        **/
    302301        public $status = "";
     302
     303        /**
     304         * Mime type pour ce document
     305         *
     306         * @var string
     307        **/
     308        private $mime_type = "";
    303309
    304310
     
    509515        }
    510516
     517        /**
     518         * Calcule et retourne un content type
     519         *
     520         * Cherche
     521         * - un content type déjà indiqué,
     522         * - sinon dans le document spip,
     523         * - sinon rien
     524         *
     525         * @note
     526         *     Tester l'extension du fichier si on n'en trouve pas ?
     527         *
     528         * @param bool $calculer
     529         *     Calculer le mime type si absent à partir de spip_documents
     530         * @return string
     531        **/
     532        public function get_mime_type($calculer = true) {
     533                if ($this->mime_type) {
     534                        return $this->mime_type;
     535                }
     536                if (!$calculer) {
     537                        return "";
     538                }
     539                if ($doc = $this->get_spip_document()) {
     540                        if ($doc['mime_type']) {
     541                                return $doc['mime_type'];
     542                        }
     543                }
     544                return "";
     545        }
     546
     547        /**
     548         * Définit un type mime pour ce document
     549         *
     550         * @param string $mime_type Mime type
     551        **/
     552        public function set_mime_type($mime_type) {
     553                $this->mime_type = $mime_type;
     554        }
    511555}
  • _plugins_/acces_restreint/trunk/paquet.xml

    r84566 r84567  
    22        prefix="accesrestreint"
    33        categorie="auteur"
    4         version="3.10.1"
     4        version="3.10.2"
    55        etat="dev"
    66        compatibilite="[3.0.0;3.0.*]"
Note: See TracChangeset for help on using the changeset viewer.