IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Téléchargement docx Symfony2 [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 15
    Par défaut Téléchargement docx Symfony2
    Bonjour,

    Dans mon application je génère un fichier docx et je souhaite que l’utilisateur puisse le télécharge. Pour ce faire dans mon contrôleur j’ai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public function telechargerFichierAction(Request $request)
    {
        $response = new \Symfony\Component\HttpFoundation\Response();
        $response->setStatusCode(200);
        $response->headers->set('Content-Type', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document');
        $response->headers->set('Content-Disposition', 'attachment;filename=Fichier.docx');
        $response->setContent(file_get_contents(dirname(__FILE__).'/../../../../web/Fichier.docx'));
        $response->send();
        return $response;
    }
    Ainsi lors de l’appel de ce contrôleur je récupère bien mon fichier docx, cependant il est deux fois plus lourd que l’original. De plus quand je tente de l’ouvrir Word me dit "impossible d’ouvrir le fichier Fichier.docx. Des problèmes ont été décelés dans son contenu". Si je valide j’ai le droit à une nouvelle fenêtre m'annonçant "Word a trouvé du contenu illisible dans Fichier.docx. Voulez-vous récupérer le contenu de ce document ? Si la source de ce document est fiable cliquer sur oui".
    Après réparation j’ai perdu une partie de ma mise en forme.

    Est-ce que quelqu’un a une idée de comment régler ce problème ?

    Merci

  2. #2
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 15
    Par défaut
    Finalement ça fonctionne, j'ai juste ajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $response->headers->set('Content-Length', "".filesize($file));
    Le code final est donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $file = dirname(__FILE__).'/../../../../web/Fichier.docx';
    $response = new \Symfony\Component\HttpFoundation\Response();
    $response->headers->set('Content-Type', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document');
    $response->headers->set('Content-Disposition','attachment; filename='.basename($file));
    $response->headers->set('Content-Transfer-Encoding', 'binary');
    $response->headers->set('Content-Length', "".filesize($file));
    $response->setContent(file_get_contents($file));
    return $response;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] Téléchargement de fichier DOCX ou ODT
    Par noepk dans le forum Symfony
    Réponses: 1
    Dernier message: 20/08/2014, 16h56
  2. [SP-2010] Docx problème lors de la recherche et du téléchargement
    Par didithewarrior dans le forum SharePoint
    Réponses: 0
    Dernier message: 28/01/2013, 16h16
  3. [2.x] Téléchargement file avec symfony2
    Par bakh yaye dans le forum Symfony
    Réponses: 2
    Dernier message: 24/04/2012, 13h45
  4. Téléchargement de fichiers docx
    Par Bz dans le forum IE
    Réponses: 1
    Dernier message: 24/08/2010, 16h07
  5. Générer le téléchargement d'un fichier docx
    Par Ishizaki dans le forum ASP.NET
    Réponses: 5
    Dernier message: 31/07/2009, 17h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo