<?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); } } }