/** * @param string $filename * @param string $name */ private static function sendHeaders($filename, $name) { OC_Response::setContentDispositionHeader($name, 'attachment'); header('Content-Transfer-Encoding: binary'); OC_Response::disableCaching(); $filesize = \OC\Files\Filesystem::filesize($filename); header('Content-Type: ' . \OC_Helper::getSecureMimeType(\OC\Files\Filesystem::getMimeType($filename))); if ($filesize > -1) { OC_Response::setContentLengthHeader($filesize); } }
/** * @param string $filename * @param string $name * @param boolean $isAttachment ; enforce download of file */ private static function sendHeaders($filename, $name, $isAttachment = true) { if ($isAttachment) { OC_Response::setContentDispositionHeader($name, 'attachment'); } header('Content-Transfer-Encoding: binary'); OC_Response::disableCaching(); $fileSize = \OC\Files\Filesystem::filesize($filename); $type = \OC::$server->getMimeTypeDetector()->getSecureMimeType(\OC\Files\Filesystem::getMimeType($filename)); header('Content-Type: ' . $type); if ($fileSize > -1) { OC_Response::setContentLengthHeader($fileSize); } }
/** * Sets the content length header (with possible workarounds) * @param string|int|float $length Length to be sent */ public static function setContentLengthHeader($length) { \OC_Response::setContentLengthHeader($length); }
/** * @param string $filename * @param string $name * @param array $rangeArray ('from'=>int,'to'=>int), ... */ private static function sendHeaders($filename, $name, array $rangeArray) { OC_Response::setContentDispositionHeader($name, 'attachment'); header('Content-Transfer-Encoding: binary', true); OC_Response::disableCaching(); $fileSize = \OC\Files\Filesystem::filesize($filename); $type = \OC::$server->getMimeTypeDetector()->getSecureMimeType(\OC\Files\Filesystem::getMimeType($filename)); if ($fileSize > -1) { if (!empty($rangeArray)) { header('HTTP/1.1 206 Partial Content', true); header('Accept-Ranges: bytes', true); if (count($rangeArray) > 1) { $type = 'multipart/byteranges; boundary=' . self::getBoundary(); // no Content-Length header here } else { header(sprintf('Content-Range: bytes %d-%d/%d', $rangeArray[0]['from'], $rangeArray[0]['to'], $fileSize), true); OC_Response::setContentLengthHeader($rangeArray[0]['to'] - $rangeArray[0]['from'] + 1); } } else { OC_Response::setContentLengthHeader($fileSize); } } header('Content-Type: ' . $type, true); }