Jump to content
justineb11

Ouverture des documents joints dans une fenetre du navigateur

Recommended Posts

Bonjour à tous,

 

Je reviens vers vous pour un PB que je rencontre, je vous explique : 

 

 

je suis sur Prestashop 1.5.5

je joint à chaque fiche produit des documents (fiche technique et fiche de sécurité) en PDF, je vais donc dans "documents joints" et je les insére comme ça.

Le problème c'est que sur la page produit en front, ça apparait comme un lien de téléchargement : quand je clique j'ai une fenetre qui s'ouvre et qui me demande si je veux l'enregistrer dans mon ordinateur ou l'ouvrir avec acrobat sur mon ordinateur. je voudrais savoir si il était possible que ce document pdf s'ouvre dans un nouvel onglet de mon navigateur comme je pourrais le faire en mettant un lien direct sur pdf. mais je trouve que ça serait plus rapide et plus simple pour moi en passant par "document joint" lors de la création d'un article.

 

Merci d'avance :)

 

 

justine

Share this post


Link to post
Share on other sites

même question

sur mon ancien site boutique (OScommerce) les pdf s'affichaient dans le navigateur

ce qui a eu pour conséquence de référencer naturellement tous ces pdf

aujourd'hui sous Prestashop

vient donc le problème de la redirection 301 pour ne pas perdre ce bon référencement

l'ancien lien devrait donc être redirigé vers le même pdf (qui au lieu de s'afficher, charge sur l'ordi)

merci !

Share this post


Link to post
Share on other sites

même souci.

 

Je suis newbie sur prestashop (mais pas en dev), et j'ai l'impression que dès qu'on veut trifouiller un peu....c'est la croix et la bannière...!

 

J'up quand même, sait on jamais ? ;-)

Share this post


Link to post
Share on other sites

je crois que je suis sur une piste dans le fichier /controllers/front/getfilecontroller.php, à la fin de la méthode init() (ligne 276 sur ma version)

 

la ou il envoit les header pour le téléchargement...

 

(croix bannière)  :angry:

 

Pourquoi les documents joints ne sont ils pas stockés en clair ???

Edited by bubu3d (see edit history)

Share this post


Link to post
Share on other sites

Je fais un petit up parce qu'on ne sait jamais si ça peut aider quelqu'un d'autre...

Je cherchais justement à résoudre ce problème et j'ai trouvé.

Fonctionne apparemment depuis PS 1.5.4.1. (je suis sous PS 1.6.0.14)

 

Il faut overrider le fichier AttachementController.php

C'est à dire copiez le fichier qui est dans controllers/front

et le coller dans override/controllers/front

puis modifier la ligne 

header('Content-Disposition: attachment; filename="'.utf8_decode($a->file_name).'"');

par
header('Content-Disposition: inline; filename="'.utf8_decode($a->file_name).'"');
N'oubliez pas de vider votre cache avant de tester ;)

Share this post


Link to post
Share on other sites

Merci pour la réponse.

 

Pour Prestashop 1.7.2 on arrive à forcer ce fonctionnement avec le même type d'override.

 

Il faut créer le fichier /override/controllers/front/AttachmentController.php et y overrider la fonction postProcess de la sorte :

class AttachmentController extends AttachmentControllerCore
{

    public function postProcess()
    {
        $a = new Attachment(Tools::getValue('id_attachment'), $this->context->language->id);
        if (!$a->id) {
            Tools::redirect('index.php');
        }

        Hook::exec('actionDownloadAttachment', array('attachment' => &$a));

        if (ob_get_level() && ob_get_length() > 0) {
            ob_end_clean();
        }

        header('Content-Transfer-Encoding: binary');
        header('Content-Type: '.$a->mime);
        header('Content-Length: '.filesize(_PS_DOWNLOAD_DIR_.$a->file));
        header('Content-Disposition: inline; filename="'.utf8_decode($a->file_name).'"');
        @set_time_limit(0);
        self::readfileChunked(_PS_DOWNLOAD_DIR_.$a->file);        
        exit;
    }
}

Et effectivement, bien penser à vider les caches smarty + navigateur.

Share this post


Link to post
Share on other sites

Bonjour,

Je suis en Prestashop 1.7.5.1 et la modification fonctionne bien : le fichier PDF s'ouvre dans l'onglet actif.

Comment faire pour qu'il s'ouvre dans un autre onglet ? (l'équivalent du target="_blank" en html)

Merci.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More