Exemplo n.º 1
0
 /**
  * A simple method to quickly send attachment stream download.
  *
  * @param   string|resource    $source    The file source, can be file path or resource.
  * @param   ResponseInterface  $response  A custom Response object to contain your headers.
  * @param   array              $options   Options to provide some settings, currently supports
  *                                        "delay" and "filename".
  *
  * @return  void
  */
 public static function sendAttachment($source, ResponseInterface $response = null, $options = array())
 {
     $stream = new Stream($source, 'r');
     /** @var MessageInterface|ResponseInterface $response */
     $response = $response ?: new Response();
     $filename = null;
     if (is_string($source)) {
         $filename = pathinfo($source, PATHINFO_BASENAME);
     }
     if (isset($options['filename'])) {
         $filename = $options['filename'];
     }
     $response = HeaderHelper::prepareAttachmentHeaders($response, $filename);
     $response = $response->withBody($stream);
     $output = static::$outputObject;
     if (!$output instanceof StreamOutput) {
         $output = new StreamOutput();
     }
     if (isset($options['delay'])) {
         $output->setDelay($options['delay']);
     }
     $output->respond($response);
 }
 /**
  * sendBody
  *
  * @param ResponseInterface $response
  *
  * @return  void
  */
 public function sendBody(ResponseInterface $response)
 {
     ob_start();
     parent::sendBody($response);
     $this->output = ob_get_clean();
 }