/** * @param $fileName * @param $content * @param array $options * @return mixed */ private function send($fileName, $content, $options = array()) { ini_set('memory_limit', '128M'); if (!isset($options[XApp_File_Utils::OPTION_SIZE_LIMIT])) { $options[XApp_File_Utils::OPTION_SIZE_LIMIT] = XApp_File_Utils::GET_FILE_SIZE_LIMIT; } if (!isset($options[XApp_File_Utils::OPTION_CHUNK_SIZE])) { $options[XApp_File_Utils::OPTION_CHUNK_SIZE] = XApp_File_Utils::GET_FILE_CHUNK_SIZE; } if (!isset($options[XApp_File_Utils::OPTION_TEMP_PATH])) { $options[XApp_File_Utils::OPTION_TEMP_PATH] = sys_get_temp_dir(); } if (!isset($options[XApp_File_Utils::OPTION_AS_ATTACHMENT])) { $options[XApp_File_Utils::OPTION_AS_ATTACHMENT] = false; } if (!isset($options[XApp_File_Utils::OPTION_TEST])) { $options[XApp_File_Utils::OPTION_TEST] = false; } if (!isset($options[XApp_File_Utils::OPTION_SEND])) { $options[XApp_File_Utils::OPTION_SEND] = true; } $mime = XApp_File_Utils::guessMime($fileName); if ($options[XApp_File_Utils::OPTION_SEND] === true) { //XApp_File_Utils::sendHeader($mime,($options[XApp_File_Utils::OPTION_AS_ATTACHMENT] ? $fileName:''), basename($fileName)); if (!$options[XApp_File_Utils::OPTION_TEST]) { XApp_File_Utils::sendHeader($mime, $options[XApp_File_Utils::OPTION_AS_ATTACHMENT] ? $fileName : '', basename($fileName)); if (strpos($mime, "text") !== FALSE) { if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) { ob_start("ob_gzhandler"); } else { ob_start(); } } } echo $content; } else { XApp_File_Utils::sendHeader($mime, '', basename($fileName)); return $content; } }