<?php namespace Vn\Web; class Util { /** * Reads a file and writes it to the output buffer. * * @param string file The file path * @param boolean useXsendfile Wether to use the apache module Xsendfile */ static function printFile($file, $useXsendfile = FALSE) { if (!file_exists($file)) { http_response_code(404); return; } $finfo = new \finfo(FILEINFO_MIME_TYPE); $mimeType = $finfo->file($file); if ($useXsendfile) { header("X-Sendfile: $file"); header("Content-Type: $mimeType"); } else { header('Content-Description: File Transfer'); header("Content-Type: $mimeType"); header('Content-Disposition: attachment; filename="'. basename($file) .'"'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: '. filesize($file)); set_time_limit(0); readfile($file); } } }