protected function _sendFile($src, $mime, $cache = true)
    {

        // Custom headers
        foreach ($this->_headers as $header => $value) {
            header($header.': '.$value);
        }

        // Send basic headers
        header('Content-Type: '.$mime);
        header('Content-Length: '.filesize(@is_link($src) ? @readlink($src) : $src));

        // If the client browser should cache the image
        if ($cache) {
            header('Cache-Control: private, max-age='.SQUEEZR_CACHE_LIFETIME);
            header('Expires: '.gmdate('D, d M Y H:i:s', time() + SQUEEZR_CACHE_LIFETIME).' GMT');
            header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($src)).' GMT');
            header('ETag: '.$this->_calculateFileETag($src));

            // Else
        } else {
            header('Cache-Control: no-cache, must-revalidate');
            header('Expires: '.gmdate('D, d M Y H:i:s', time() - SQUEEZR_CACHE_LIFETIME).' GMT');
        }

        readfile($src);
        exit;
    }