Bonjour,

j'utilise vichuploaderbundle pour uploader des pdfs. J'aimerais récupérer ces fichiers depuis le contrôleur avant de les envoyer vers le template,ceci afin générer des vignettes de prévisualisation.

voici la classe d'"extraction" de la preview récupérée ici https://gist.github.com/slashfan/b68e58fe889fafeeaa45

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
<?php
namespace Siraat\AdDinBundle\ImageExtractor;
 
/**
 * ImageExtractor
 */
class ImageExtractor
{
    const FORMAT_JPG = 'jpg';
    const FORMAT_PNG = 'png';
    /**
     * @param string $source      source filepath
     * @param string $destination destination filepath
     * @param string $format      destination format
     *
     * @return bool
     */
    public static function extract($source, $destination, $format = self::FORMAT_PNG)
    {
        if (!extension_loaded('Imagick')) {
            return false;
        }
        $imagick = new \Imagick($source.'[0]');
        $imagick->setFormat($format);
        return $imagick->writeImage($destination);
    }
}
voila le contrôleur

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
public function indexAction(Request $request, $id)
{
      $em = $this->getDoctrine()->getManager();
 
      $document = $em->getRepository('SiraatAdDinBundle:Document')->findById($id);                
      $downloadHandler = $this->get('vich_uploader.download_handler');
      $response = $downloadHandler->downloadObject($document, $fileField = 'documentFile');
 
      /*... j'ignore  comment  passer $response à ma classe ImageExtractor.... */
 
      return $this->render('SiraatAdDinBundle:Main:index.html.twig', array('document' => $document));
}
je récupère l'objet Response mais je ne sais pas comment le traiter pour en extraire le document afin de générer la vignette

si quelqu'un a des pistes je suis preneur