public function sendFile($file, $contentType = false) {
        $fp = fopen($file, "r");
        $this['response']->setBody(new \Guzzle\Stream\Stream($fp));
        if ($contentType) {
            $this['response']->setHeader("Content-Type", $contentType);
        } else {
            if (file_exists($file)) {
                //Set Content-Type
                if (extension_loaded('fileinfo')) {
                    $finfo = new \finfo(FILEINFO_MIME_TYPE);
                    $type = $finfo->file($file);
                    $this['response']->setHeader("Content-Type", $type);
                } else {
                    $this['response']->setHeader("Content-Type", "application/octet-stream");
                }

                //Set Content-Length
                $stat = fstat($fp);
                $this['response']->setHeader("Content-Length", $stat['size']);
            } else {
                //Set Content-Type and Content-Length
                $data = stream_get_meta_data($fp);

                foreach ($data['wrapper_data'] as $header) {
                    list($k, $v) = explode(": ", $header, 2);

                    if ($k === "Content-Type") {
                        $this['response']->setHeader("Content-Type", $v);
                    } else if ($k === "Content-Length") {
                        $this['response']->setHeader("Content-Length", $v);
                    }
                }
            }
        }
    }