download = $download; return $this; } public function getDownload() { return $this->download; } public function setMimeType($mime_type) { $this->mimeType = $mime_type; return $this; } public function getMimeType() { return $this->mimeType; } public function setContent($content) { $this->content = $content; return $this; } public function buildResponseString() { if ($this->rangeMin || $this->rangeMax) { $length = ($this->rangeMax - $this->rangeMin) + 1; return substr($this->content, $this->rangeMin, $length); } else { return $this->content; } } public function setRange($min, $max) { $this->rangeMin = $min; $this->rangeMax = $max; return $this; } public function getHeaders() { $headers = array( array('Content-Type', $this->getMimeType()), array('Content-Length', strlen($this->buildResponseString())), ); if ($this->rangeMin || $this->rangeMax) { $len = strlen($this->content); $min = $this->rangeMin; $max = $this->rangeMax; $headers[] = array('Content-Range', "bytes {$min}-{$max}/{$len}"); } if (strlen($this->getDownload())) { $headers[] = array('X-Download-Options', 'noopen'); $filename = $this->getDownload(); $headers[] = array( 'Content-Disposition', 'attachment; filename='.$filename, ); } $headers = array_merge(parent::getHeaders(), $headers); return $headers; } }