Ejemplo n.º 1
0
 public function download(VirtualProductOrderDownloadResponseEvent $event)
 {
     $orderProduct = $event->getOrderProduct();
     if ($orderProduct->getVirtualDocument()) {
         // try to get the file
         $path = THELIA_ROOT . ConfigQuery::read('documents_library_path', 'local/media/documents') . DS . "product" . DS . $orderProduct->getVirtualDocument();
         if (!is_file($path) || !is_readable($path)) {
             throw new \ErrorException(Translator::getInstance()->trans("The file [%file] does not exist", ["%file" => $orderProduct->getId()]));
         }
         $response = new BinaryFileResponse($path);
         $response->setContentDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT);
         $event->setResponse($response);
     }
 }
Ejemplo n.º 2
0
 public function download(VirtualProductOrderDownloadResponseEvent $event)
 {
     $orderProduct = $event->getOrderProduct();
     if ($orderProduct->getVirtualDocument()) {
         $baseSourceFilePath = ConfigQuery::read('documents_library_path');
         if ($baseSourceFilePath === null) {
             $baseSourceFilePath = THELIA_LOCAL_DIR . 'media' . DS . 'documents';
         } else {
             $baseSourceFilePath = THELIA_ROOT . $baseSourceFilePath;
         }
         // try to get the file
         $path = $baseSourceFilePath . DS . 'product' . DS . $orderProduct->getVirtualDocument();
         if (!is_file($path) || !is_readable($path)) {
             throw new \ErrorException(Translator::getInstance()->trans("The file [%file] does not exist", ["%file" => $orderProduct->getId()], VirtualProductDelivery::MESSAGE_DOMAIN));
         }
         $response = new BinaryFileResponse($path);
         $response->setContentDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT);
         $event->setResponse($response);
     }
 }