|
|
|
|
<?php
|
|
|
|
|
/***************************************************************************
|
|
|
|
|
*
|
|
|
|
|
* Encode Explorer
|
|
|
|
|
*
|
|
|
|
|
* Author : Marek Rei (marek ät marekrei dot com)
|
|
|
|
|
* Version : 6.4.1
|
|
|
|
|
* Homepage : encode-explorer.siineiolekala.net
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* NB!:If you change anything, save with UTF-8! Otherwise you may
|
|
|
|
|
* encounter problems, especially when displaying images.
|
|
|
|
|
*
|
|
|
|
|
***************************************************************************/
|
|
|
|
|
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
/* HERE ARE THE SETTINGS FOR CONFIGURATION */
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Initialising variables. Don't change these.
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
$_CONFIG = array();
|
|
|
|
|
$_ERROR = "";
|
|
|
|
|
$_START_TIME = microtime(TRUE);
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* GENERAL SETTINGS
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Choose a language. See below in the language section for options.
|
|
|
|
|
// Default: $_CONFIG['lang'] = "en";
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['lang'] = "cn";
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Display thumbnails when hovering over image entries in the list.
|
|
|
|
|
// Common image types are supported (jpeg, png, gif).
|
|
|
|
|
// Pdf files are also supported but require ImageMagick to be installed.
|
|
|
|
|
// Default: $_CONFIG['thumbnails'] = true;
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['thumbnails'] = false;
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Maximum sizes of the thumbnails.
|
|
|
|
|
// Default: $_CONFIG['thumbnails_width'] = 200;
|
|
|
|
|
// Default: $_CONFIG['thumbnails_height'] = 200;
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['thumbnails_width'] = 300;
|
|
|
|
|
$_CONFIG['thumbnails_height'] = 300;
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Mobile interface enabled. true/false
|
|
|
|
|
// Default: $_CONFIG['mobile_enabled'] = true;
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['mobile_enabled'] = true;
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Mobile interface as the default setting. true/false
|
|
|
|
|
// Default: $_CONFIG['mobile_default'] = false;
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['mobile_default'] = true;
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* USER INTERFACE
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Will the files be opened in a new window? true/false
|
|
|
|
|
// Default: $_CONFIG['open_in_new_window'] = false;
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['open_in_new_window'] = false;
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// How deep in subfolders will the script search for files?
|
|
|
|
|
// Set it larger than 0 to display the total used space.
|
|
|
|
|
// Default: $_CONFIG['calculate_space_level'] = 0;
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['calculate_space_level'] = 0;
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Will the page header be displayed? 0=no, 1=yes.
|
|
|
|
|
// Default: $_CONFIG['show_top'] = true;
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['show_top'] = true;
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// The title for the page
|
|
|
|
|
// Default: $_CONFIG['main_title'] = "Encode Explorer";
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['main_title'] = "文件管理";
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// The secondary page titles, randomly selected and displayed under the main header.
|
|
|
|
|
// For example: $_CONFIG['secondary_titles'] = array("Secondary title", "“Secondary title with quotes”");
|
|
|
|
|
// Default: $_CONFIG['secondary_titles'] = array();
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['secondary_titles'] = array();
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Display breadcrumbs (relative path of the location).
|
|
|
|
|
// Default: $_CONFIG['show_path'] = true;
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['show_path'] = true;
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Display the time it took to load the page.
|
|
|
|
|
// Default: $_CONFIG['show_load_time'] = true;
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['show_load_time'] = true;
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// The time format for the "last changed" column.
|
|
|
|
|
// Default: $_CONFIG['time_format'] = "d.m.y H:i:s";
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['time_format'] = "d.m.y H:i:s";
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Charset. Use the one that suits for you.
|
|
|
|
|
// Default: $_CONFIG['charset'] = "UTF-8";
|
|
|
|
|
//
|
|
|
|
|
//$_CONFIG['charset'] = "UTF-8";
|
|
|
|
|
$_CONFIG['charset'] = "GB2312";
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* PERMISSIONS
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// The array of folder names that will be hidden from the list.
|
|
|
|
|
// Default: $_CONFIG['hidden_dirs'] = array();
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['hidden_dirs'] = array();
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Filenames that will be hidden from the list.
|
|
|
|
|
// Default: $_CONFIG['hidden_files'] = array(".ftpquota", "index.php", "index.php~", ".htaccess", ".htpasswd");
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['hidden_files'] = array(".ftpquota", "index.php", "index.php~", ".htaccess", ".htpasswd");
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Whether authentication is required to see the contents of the page.
|
|
|
|
|
// If set to false, the page is public.
|
|
|
|
|
// If set to true, you should specify some users as well (see below).
|
|
|
|
|
// Important: This only prevents people from seeing the list.
|
|
|
|
|
// They will still be able to access the files with a direct link.
|
|
|
|
|
// Default: $_CONFIG['require_login'] = false;
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['require_login'] = false;
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Usernames and passwords for restricting access to the page.
|
|
|
|
|
// The format is: array(username, password, status)
|
|
|
|
|
// Status can be either "user" or "admin". User can read the page, admin can upload and delete.
|
|
|
|
|
// For example: $_CONFIG['users'] = array(array("username1", "password1", "user"), array("username2", "password2", "admin"));
|
|
|
|
|
// You can also keep require_login=false and specify an admin.
|
|
|
|
|
// That way everyone can see the page but username and password are needed for uploading.
|
|
|
|
|
// For example: $_CONFIG['users'] = array(array("username", "password", "admin"));
|
|
|
|
|
// Default: $_CONFIG['users'] = array();
|
|
|
|
|
//
|
|
|
|
|
//$_CONFIG['users'] = array();
|
|
|
|
|
$_CONFIG['users'] = array(array("admin", "123", "admin"));
|
|
|
|
|
//
|
|
|
|
|
// Permissions for uploading, creating new directories and deleting.
|
|
|
|
|
// They only apply to admin accounts, regular users can never perform these operations.
|
|
|
|
|
// Default:
|
|
|
|
|
// $_CONFIG['upload_enable'] = true;
|
|
|
|
|
// $_CONFIG['newdir_enable'] = true;
|
|
|
|
|
// $_CONFIG['delete_enable'] = false;
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['upload_enable'] = true;
|
|
|
|
|
$_CONFIG['newdir_enable'] = true;
|
|
|
|
|
$_CONFIG['delete_enable'] = false;
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* UPLOADING
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// List of directories where users are allowed to upload.
|
|
|
|
|
// For example: $_CONFIG['upload_dirs'] = array("./myuploaddir1/", "./mydir/upload2/");
|
|
|
|
|
// The path should be relative to the main directory, start with "./" and end with "/".
|
|
|
|
|
// All the directories below the marked ones are automatically included as well.
|
|
|
|
|
// If the list is empty (default), all directories are open for uploads, given that the password has been set.
|
|
|
|
|
// Default: $_CONFIG['upload_dirs'] = array();
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['upload_dirs'] = array();
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// MIME type that are allowed to be uploaded.
|
|
|
|
|
// For example, to only allow uploading of common image types, you could use:
|
|
|
|
|
// $_CONFIG['upload_allow_type'] = array("image/png", "image/gif", "image/jpeg");
|
|
|
|
|
// Default: $_CONFIG['upload_allow_type'] = array();
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['upload_allow_type'] = array();
|
|
|
|
|
$_CONFIG['upload_allow_type'] = array("image/png", "image/gif", "image/jpeg");
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// File extensions that are not allowed for uploading.
|
|
|
|
|
// For example: $_CONFIG['upload_reject_extension'] = array("php", "html", "htm");
|
|
|
|
|
// Default: $_CONFIG['upload_reject_extension'] = array();
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['upload_reject_extension'] = array("php", "php2", "php3", "php4", "php5", "phtml");
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// By default, apply 0755 permissions to new directories
|
|
|
|
|
//
|
|
|
|
|
// The mode parameter consists of three octal number components specifying
|
|
|
|
|
// access restrictions for the owner, the user group in which the owner is
|
|
|
|
|
// in, and to everybody else in this order.
|
|
|
|
|
//
|
|
|
|
|
// See: https://php.net/manual/en/function.chmod.php
|
|
|
|
|
//
|
|
|
|
|
// Default: $_CONFIG['new_dir_mode'] = 0755;
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['new_dir_mode'] = 0755;
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// By default, apply 0644 permissions to uploaded files
|
|
|
|
|
//
|
|
|
|
|
// The mode parameter consists of three octal number components specifying
|
|
|
|
|
// access restrictions for the owner, the user group in which the owner is
|
|
|
|
|
// in, and to everybody else in this order.
|
|
|
|
|
//
|
|
|
|
|
// See: https://php.net/manual/en/function.chmod.php
|
|
|
|
|
//
|
|
|
|
|
// Default: $_CONFIG['upload_file_mode'] = 0644;
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['upload_file_mode'] = 0644;
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* LOGGING
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Upload notification e-mail.
|
|
|
|
|
// If set, an e-mail will be sent every time someone uploads a file or creates a new dirctory.
|
|
|
|
|
// Default: $_CONFIG['upload_email'] = "";
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['upload_email'] = "315355638@qq.com";
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Logfile name. If set, a log line will be written there whenever a directory or file is accessed.
|
|
|
|
|
// For example: $_CONFIG['log_file'] = ".log.txt";
|
|
|
|
|
// Default: $_CONFIG['log_file'] = "";
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['log_file'] = "";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* SYSTEM
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// The starting directory. Normally no need to change this.
|
|
|
|
|
// Use only relative subdirectories!
|
|
|
|
|
// For example: $_CONFIG['starting_dir'] = "./mysubdir/";
|
|
|
|
|
// Default: $_CONFIG['starting_dir'] = ".";
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['starting_dir'] = ".";
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Location in the server. Usually this does not have to be set manually.
|
|
|
|
|
// Default: $_CONFIG['basedir'] = "";
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['basedir'] = "";
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Big files. If you have some very big files (>4GB), enable this for correct
|
|
|
|
|
// file size calculation.
|
|
|
|
|
// Default: $_CONFIG['large_files'] = false;
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['large_files'] = false;
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// The session name, which is used as a cookie name.
|
|
|
|
|
// Change this to something original if you have multiple copies in the same space
|
|
|
|
|
// and wish to keep their authentication separate.
|
|
|
|
|
// The value can contain only letters and numbers. For example: MYSESSION1
|
|
|
|
|
// More info at: http://www.php.net/manual/en/function.session-name.php
|
|
|
|
|
// Default: $_CONFIG['session_name'] = "";
|
|
|
|
|
//
|
|
|
|
|
$_CONFIG['session_name'] = "";
|
|
|
|
|
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
/* TÕLKED */
|
|
|
|
|
/* */
|
|
|
|
|
/* TRANSLATIONS. */
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
|
|
|
|
|
$_TRANSLATIONS = array();
|
|
|
|
|
|
|
|
|
|
// Albanian
|
|
|
|
|
$_TRANSLATIONS["al"] = array(
|
|
|
|
|
"file_name" => "Emri Skedarit",
|
|
|
|
|
"size" => "Madhësia",
|
|
|
|
|
"last_changed" => "Ndryshuar",
|
|
|
|
|
"total_used_space" => "Memorija e përdorur total",
|
|
|
|
|
"free_space" => "Memorija e lirë",
|
|
|
|
|
"password" => "Fjalëkalimi",
|
|
|
|
|
"upload" => "Ngarko skedarë",
|
|
|
|
|
"failed_upload" => "Ngarkimi i skedarit dështoi!",
|
|
|
|
|
"failed_move" => "Lëvizja e skedarit në udhëzuesin e saktë deshtoi!",
|
|
|
|
|
"wrong_password" => "Fjalëkalimi i Gabuar!!",
|
|
|
|
|
"make_directory" => "New dir",
|
|
|
|
|
"new_dir_failed" => "Failed to create directory",
|
|
|
|
|
"chmod_dir_failed" => "Failed to change directory rights",
|
|
|
|
|
"unable_to_read_dir" => "Unable to read directory",
|
|
|
|
|
"location" => "Location",
|
|
|
|
|
"root" => "Root"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Czech
|
|
|
|
|
$_TRANSLATIONS["cz"] = array(
|
|
|
|
|
"file_name" => "Název souboru",
|
|
|
|
|
"size" => "Velikost",
|
|
|
|
|
"last_changed" => "Změněno",
|
|
|
|
|
"total_used_space" => "Obsazený prostor",
|
|
|
|
|
"free_space" => "Volný prostor",
|
|
|
|
|
"password" => "Heslo",
|
|
|
|
|
"upload" => "Nahrát",
|
|
|
|
|
"failed_upload" => "Nahrávání se nezdařilo!",
|
|
|
|
|
"failed_move" => "Přesun souboru do určeného adresáře se nezdařil!",
|
|
|
|
|
"wrong_password" => "Chybné heslo",
|
|
|
|
|
"make_directory" => "Nový adresář",
|
|
|
|
|
"new_dir_failed" => "Vytvoření adresáře se nezdařilo",
|
|
|
|
|
"chmod_dir_failed" => "Změna práv adresáře se nezdařila",
|
|
|
|
|
"unable_to_read_dir" => "Chyba při čtení adresáře",
|
|
|
|
|
"location" => "Umístění",
|
|
|
|
|
"root" => "Kořenový adresář",
|
|
|
|
|
"log_file_permission_error" => "Skript nemá oprávnění k zápisu do souboru protokolu.",
|
|
|
|
|
"upload_not_allowed" => "Konfigurační skript neumožňuje nahrávání v tomto adresáři.",
|
|
|
|
|
"upload_dir_not_writable" => "Tento adresář nemá oprávnění k zápisu.",
|
|
|
|
|
"mobile_version" => "Zobrazení pro mobil",
|
|
|
|
|
"standard_version" => "Standardní zobrazení",
|
|
|
|
|
"page_load_time" => "Stránka nahrána za %.2f ms",
|
|
|
|
|
"wrong_pass" => "Špatné uživatelské jméno nebo heslo",
|
|
|
|
|
"username" => "Uživatelské jméno",
|
|
|
|
|
"log_in" => "Přihlásit se",
|
|
|
|
|
"upload_type_not_allowed" => "Tento typ souboru není povolen pro nahrávání.",
|
|
|
|
|
"del" => "Smazat",
|
|
|
|
|
"log_out" => "Odhlásit se"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Dutch
|
|
|
|
|
$_TRANSLATIONS["nl"] = array(
|
|
|
|
|
"file_name" => "Bestandsnaam",
|
|
|
|
|
"size" => "Omvang",
|
|
|
|
|
"last_changed" => "Laatst gewijzigd",
|
|
|
|
|
"total_used_space" => "Totaal gebruikte ruimte",
|
|
|
|
|
"free_space" => "Beschikbaar",
|
|
|
|
|
"password" => "Wachtwoord",
|
|
|
|
|
"upload" => "Upload",
|
|
|
|
|
"failed_upload" => "Fout bij uploaden van bestand!",
|
|
|
|
|
"failed_move" => "Fout bij het verplaatsen van tijdelijk uploadbestand!",
|
|
|
|
|
"wrong_password" => "Fout wachtwoord!",
|
|
|
|
|
"make_directory" => "Nieuwe folder",
|
|
|
|
|
"new_dir_failed" => "Fout bij aanmaken folder!",
|
|
|
|
|
"chmod_dir_failed" => "Rechten konden niet gewijzigd worden!",
|
|
|
|
|
"unable_to_read_dir" => "Niet mogelijk om directorie te lezen",
|
|
|
|
|
"location" => "Locatie",
|
|
|
|
|
"root" => "Root",
|
|
|
|
|
"log_file_permission_error" => "Script heeft geen toegang tot het logbestand.",
|
|
|
|
|
"upload_not_allowed" => "Uploaden van bestanden is niet toegestaan.",
|
|
|
|
|
"upload_dir_not_writable" => "Het is niet toegestaan in deze directorie bestanden te plaatsen.",
|
|
|
|
|
"mobile_version" => "Mobiele weergave",
|
|
|
|
|
"standard_version" => "Standaard weergave",
|
|
|
|
|
"page_load_time" => "Pagina geladen in %.2f ms",
|
|
|
|
|
"wrong_pass" => "Foutieve gebruikersnaam of wachtwoord",
|
|
|
|
|
"username" => "Gebruikersnaam",
|
|
|
|
|
"log_in" => "Inloggen",
|
|
|
|
|
"upload_type_not_allowed" => "Dit type bestand is niet toegestaan.",
|
|
|
|
|
"del" => "Verwijder", // short for Delete
|
|
|
|
|
"log_out" => "Uitloggen"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// 中文
|
|
|
|
|
$_TRANSLATIONS["cn"] = array(
|
|
|
|
|
"file_name" => "文件名",
|
|
|
|
|
"size" => "大小",
|
|
|
|
|
"last_changed" => "上次更改",
|
|
|
|
|
"total_used_space" => "总已用空间",
|
|
|
|
|
"free_space" => "剩余空间",
|
|
|
|
|
"password" => "密码",
|
|
|
|
|
"upload" => "上传",
|
|
|
|
|
"failed_upload" => "上传失败",
|
|
|
|
|
"failed_move" => "移动失败",
|
|
|
|
|
"wrong_password" => "密码错误",
|
|
|
|
|
"make_directory" => "生成目录",
|
|
|
|
|
"new_dir_failed" => "新目录失败",
|
|
|
|
|
"chmod_dir_failed" => "chmod目录失败",
|
|
|
|
|
"unable_to_read_dir" => "无法读取目录",
|
|
|
|
|
"location" => "位置",
|
|
|
|
|
"root" => "根目录",
|
|
|
|
|
"log_file_permission_error" => "脚本没有写入日志文件的权限。",
|
|
|
|
|
"upload_not_allowed" => "The script configuration does not allow uploading in this directory.",
|
|
|
|
|
"upload_dir_not_writable" => "脚本配置不允许在此目录中上载。",
|
|
|
|
|
"mobile_version" => "切换手机浏览",
|
|
|
|
|
"standard_version" => "切换标准浏览",
|
|
|
|
|
"page_load_time" => "页面加载时间 %.2f 毫秒",
|
|
|
|
|
"username" => "用户名",
|
|
|
|
|
"log_in" => "登录",
|
|
|
|
|
"upload_type_not_allowed" => "不允许上载此文件类型。",
|
|
|
|
|
"del" => "删除",
|
|
|
|
|
"log_out" => "注销登录"
|
|
|
|
|
);
|
|
|
|
|
// English
|
|
|
|
|
$_TRANSLATIONS["en"] = array(
|
|
|
|
|
"file_name" => "File name",
|
|
|
|
|
"size" => "Size",
|
|
|
|
|
"last_changed" => "Last updated",
|
|
|
|
|
"total_used_space" => "Total space used",
|
|
|
|
|
"free_space" => "Free space",
|
|
|
|
|
"password" => "Password",
|
|
|
|
|
"upload" => "Upload",
|
|
|
|
|
"failed_upload" => "Failed to upload the file!",
|
|
|
|
|
"failed_move" => "Failed to move the file into the right directory!",
|
|
|
|
|
"wrong_password" => "Wrong password",
|
|
|
|
|
"make_directory" => "New directory",
|
|
|
|
|
"new_dir_failed" => "Failed to create directory",
|
|
|
|
|
"chmod_dir_failed" => "Failed to change directory rights",
|
|
|
|
|
"unable_to_read_dir" => "Unable to read directory",
|
|
|
|
|
"location" => "Location",
|
|
|
|
|
"root" => "Root",
|
|
|
|
|
"log_file_permission_error" => "The script does not have permissions to write the log file.",
|
|
|
|
|
"upload_not_allowed" => "The script configuration does not allow uploading in this directory.",
|
|
|
|
|
"upload_dir_not_writable" => "This directory does not have write permissions.",
|
|
|
|
|
"mobile_version" => "Mobile view",
|
|
|
|
|
"standard_version" => "Standard view",
|
|
|
|
|
"page_load_time" => "Page loaded in %.2f ms",
|
|
|
|
|
"wrong_pass" => "Wrong username or password",
|
|
|
|
|
"username" => "Username",
|
|
|
|
|
"log_in" => "Log in",
|
|
|
|
|
"upload_type_not_allowed" => "This file type is not allowed for uploading.",
|
|
|
|
|
"del" => "Delete",
|
|
|
|
|
"log_out" => "Log out"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Estonian
|
|
|
|
|
$_TRANSLATIONS["et"] = array(
|
|
|
|
|
"file_name" => "Faili nimi",
|
|
|
|
|
"size" => "Suurus",
|
|
|
|
|
"last_changed" => "Viimati muudetud",
|
|
|
|
|
"total_used_space" => "Kokku kasutatud",
|
|
|
|
|
"free_space" => "Vaba ruumi",
|
|
|
|
|
"password" => "Parool",
|
|
|
|
|
"upload" => "Uploadi",
|
|
|
|
|
"failed_upload" => "Faili ei õnnestunud serverisse laadida!",
|
|
|
|
|
"failed_move" => "Faili ei õnnestunud õigesse kausta liigutada!",
|
|
|
|
|
"wrong_password" => "Vale parool",
|
|
|
|
|
"make_directory" => "Uus kaust",
|
|
|
|
|
"new_dir_failed" => "Kausta loomine ebaõnnestus",
|
|
|
|
|
"chmod_dir_failed" => "Kausta õiguste muutmine ebaõnnestus",
|
|
|
|
|
"unable_to_read_dir" => "Unable to read directory",
|
|
|
|
|
"location" => "Asukoht",
|
|
|
|
|
"root" => "Peakaust"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Finnish
|
|
|
|
|
$_TRANSLATIONS["fi"] = array(
|
|
|
|
|
"file_name" => "Tiedoston nimi",
|
|
|
|
|
"size" => "Koko",
|
|
|
|
|
"last_changed" => "Muokattu",
|
|
|
|
|
"total_used_space" => "Yhteenlaskettu koko",
|
|
|
|
|
"free_space" => "Vapaa tila",
|
|
|
|
|
"password" => "Salasana",
|
|
|
|
|
"upload" => "Lisää tiedosto",
|
|
|
|
|
"failed_upload" => "Tiedoston lisäys epäonnistui!",
|
|
|
|
|
"failed_move" => "Tiedoston siirto kansioon epäonnistui!",
|
|
|
|
|
"wrong_password" => "Väärä salasana",
|
|
|
|
|
"make_directory" => "Uusi kansio",
|
|
|
|
|
"new_dir_failed" => "Uuden kansion luonti epäonnistui!",
|
|
|
|
|
"chmod_dir_failed" => "Kansion käyttäjäoikeuksien muuttaminen epäonnistui!",
|
|
|
|
|
"unable_to_read_dir" => "Kansion sisältöä ei voi lukea.",
|
|
|
|
|
"location" => "Paikka",
|
|
|
|
|
"root" => "Juurihakemisto",
|
|
|
|
|
"log_file_permission_error" => "Ohjelman ei ole sallittu kirjoittaa lokiin.",
|
|
|
|
|
"upload_not_allowed" => "Ohjelman asetukset eivät salli tiedoston lisäämistä tähän kansioon.",
|
|
|
|
|
"upload_dir_not_writable" => "Kansioon tallentaminen epäonnistui.",
|
|
|
|
|
"mobile_version" => "Mobiilinäkymä",
|
|
|
|
|
"standard_version" => "Tavallinen näkymä",
|
|
|
|
|
"page_load_time" => "Sivu ladattu %.2f ms:ssa",
|
|
|
|
|
"wrong_pass" => "Väärä käyttäjätunnus tai salasana",
|
|
|
|
|
"username" => "Käyttäjätunnus",
|
|
|
|
|
"log_in" => "Kirjaudu sisään",
|
|
|
|
|
"log_out" => "Kirjaudu ulos",
|
|
|
|
|
"upload_type_not_allowed" => "Tämän tiedostotyypin lisääminen on estetty.",
|
|
|
|
|
"del" => "Poista"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// French
|
|
|
|
|
$_TRANSLATIONS["fr"] = array(
|
|
|
|
|
"file_name" => "Nom de fichier",
|
|
|
|
|
"size" => "Taille",
|
|
|
|
|
"last_changed" => "Ajouté",
|
|
|
|
|
"total_used_space" => "Espace total utilisé",
|
|
|
|
|
"free_space" => "Espace libre",
|
|
|
|
|
"password" => "Mot de passe",
|
|
|
|
|
"upload" => "Envoyer un fichier",
|
|
|
|
|
"failed_upload" => "Erreur lors de l'envoi",
|
|
|
|
|
"failed_move" => "Erreur lors du changement de dossier",
|
|
|
|
|
"wrong_password" => "Mauvais mot de passe",
|
|
|
|
|
"make_directory" => "Nouveau dossier",
|
|
|
|
|
"new_dir_failed" => "Erreur lors de la création du dossier",
|
|
|
|
|
"chmod_dir_failed" => "Impossible de changer les permissions du dossier",
|
|
|
|
|
"unable_to_read_dir" => "Impossible de lire le dossier",
|
|
|
|
|
"location" => "Localisation",
|
|
|
|
|
"root" => "Racine",
|
|
|
|
|
"log_file_permission_error" => "Le script ne possède pas les permissions pour écrire un fichier d'enregistrement.",
|
|
|
|
|
"upload_not_allowed" => "La configuration actuelle ne permet de déposer un fichier dans ce dossier.",
|
|
|
|
|
"upload_dir_not_writable" => "Ce dossier ne possède pas les permissions en écriture.",
|
|
|
|
|
"mobile_version" => "Vue mobile",
|
|
|
|
|
"standard_version" => "Vue standard",
|
|
|
|
|
"page_load_time" => "Page chargée en %.2f ms",
|
|
|
|
|
"wrong_pass" => "Identifiant ou mot de passe incorrect",
|
|
|
|
|
"username" => "Identifiant",
|
|
|
|
|
"log_in" => "Connexion",
|
|
|
|
|
"upload_type_not_allowed" => "Ce format de fichier n'est pas autorisé.",
|
|
|
|
|
"del" => "Effacer",
|
|
|
|
|
"log_out" => "Déconnexion"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// German
|
|
|
|
|
$_TRANSLATIONS["de"] = array(
|
|
|
|
|
"file_name" => "Dateiname",
|
|
|
|
|
"size" => "Größe",
|
|
|
|
|
"last_changed" => "Letzte Änderung",
|
|
|
|
|
"total_used_space" => "Benutzter Speicherplatz",
|
|
|
|
|
"free_space" => "Freier Speicherplatz",
|
|
|
|
|
"password" => "Passwort",
|
|
|
|
|
"upload" => "Upload",
|
|
|
|
|
"failed_upload" => "Upload ist fehlgeschlagen!",
|
|
|
|
|
"failed_move" => "Verschieben der Datei ist fehlgeschlagen!",
|
|
|
|
|
"wrong_password" => "Falsches Passwort",
|
|
|
|
|
"make_directory" => "Neuer Ordner",
|
|
|
|
|
"new_dir_failed" => "Erstellen des Ordners fehlgeschlagen",
|
|
|
|
|
"chmod_dir_failed" => "Veränderung der Zugriffsrechte des Ordners fehlgeschlagen",
|
|
|
|
|
"unable_to_read_dir" => "Ordner konnte nicht gelesen werden",
|
|
|
|
|
"location" => "Ort",
|
|
|
|
|
"root" => "Wurzelverzeichnis",
|
|
|
|
|
"log_file_permission_error" => "Das Script kann wegen fehlenden Berechtigungen keine Log Datei schreiben.",
|
|
|
|
|
"upload_not_allowed" => "Die Scriptkonfiguration erlaubt kein Hochladen in dieses Verzeichnis.",
|
|
|
|
|
"upload_dir_not_writable" => "Dieser Ordner besitzt keine Schreibrechte.",
|
|
|
|
|
"mobile_version" => "Mobile Ansicht",
|
|
|
|
|
"standard_version" => "Normale Ansicht",
|
|
|
|
|
"page_load_time" => "Die Seite wurde in %.2f ms geladen",
|
|
|
|
|
"wrong_pass" => "Benutzername oder Kennwort falsch",
|
|
|
|
|
"username" => "Benutzername",
|
|
|
|
|
"log_in" => "Einloggen",
|
|
|
|
|
"upload_type_not_allowed" => "Dieser Dateityp darf nicht hochgeladen werden.",
|
|
|
|
|
"del" => "Entfernen",
|
|
|
|
|
"log_out" => "Ausloggen"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Greek
|
|
|
|
|
$_TRANSLATIONS["el"] = array(
|
|
|
|
|
"file_name" => "Όνομα αρχείου",
|
|
|
|
|
"size" => "Μέγεθος",
|
|
|
|
|
"last_changed" => "Τροποποιημένο",
|
|
|
|
|
"total_used_space" => "Χρησιμοποιημένος χώρος",
|
|
|
|
|
"free_space" => "Ελεύθερος χώρος",
|
|
|
|
|
"password" => "Εισάγεται κωδικό",
|
|
|
|
|
"upload" => "Φόρτωση",
|
|
|
|
|
"failed_upload" => "Αποτυχία φόρτωσης αρχείου!",
|
|
|
|
|
"failed_move" => "Αποτυχία μεταφοράς αρχείου στον κατάλληλο φάκελο!",
|
|
|
|
|
"wrong_password" => "Λάθος κωδικός",
|
|
|
|
|
"make_directory" => "Δημιουργία νέου φακέλου",
|
|
|
|
|
"new_dir_failed" => "Αποτυχία δημιουργίας νέου φακέλου",
|
|
|
|
|
"chmod_dir_failed" => "Αποτυχία τροποποίησης δικαιωμάτων φακέλου",
|
|
|
|
|
"unable_to_read_dir" => "Unable to read directory",
|
|
|
|
|
"location" => "Location",
|
|
|
|
|
"root" => "Root"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Hungarian
|
|
|
|
|
$_TRANSLATIONS["hu"] = array(
|
|
|
|
|
"file_name" => "Fájl név",
|
|
|
|
|
"size" => "Méret",
|
|
|
|
|
"last_changed" => "Utolsó módosítás",
|
|
|
|
|
"total_used_space" => "Összes elfoglalt terület",
|
|
|
|
|
"free_space" => "Szabad terület",
|
|
|
|
|
"password" => "Jelszó",
|
|
|
|
|
"upload" => "Feltöltés",
|
|
|
|
|
"failed_upload" => "A fájl feltöltése nem sikerült!",
|
|
|
|
|
"failed_move" => "A fájl mozgatása nem sikerült!",
|
|
|
|
|
"wrong_password" => "Hibás jelszó",
|
|
|
|
|
"make_directory" => "Új mappa",
|
|
|
|
|
"new_dir_failed" => "A mappa létrehozása nem sikerült",
|
|
|
|
|
"chmod_dir_failed" => "A mappa jogainak megváltoztatása nem sikerült",
|
|
|
|
|
"unable_to_read_dir" => "A mappa nem olvasható",
|
|
|
|
|
"location" => "Hely",
|
|
|
|
|
"root" => "Gyökér",
|
|
|
|
|
"log_file_permission_error" => "A log fájl írása jogosultsági okok miatt nem sikerült.",
|
|
|
|
|
"upload_not_allowed" => "Ebbe a mappába a feltöltés nem engedélyezett.",
|
|
|
|
|
"upload_dir_not_writable" => "A mappa nem írható.",
|
|
|
|
|
"mobile_version" => "Mobil nézet",
|
|
|
|
|
"standard_version" => "Web nézet",
|
|
|
|
|
"page_load_time" => "Letöltési id? %.2f ms",
|
|
|
|
|
"wrong_pass" => "Rossz felhasználónév vagy jelszó",
|
|
|
|
|
"username" => "Felhasználónév",
|
|
|
|
|
"log_in" => "Belépés",
|
|
|
|
|
"upload_type_not_allowed" => "A fájltípus feltöltése tiltott."
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Italian
|
|
|
|
|
$_TRANSLATIONS["it"] = array(
|
|
|
|
|
"file_name" => "Nome file",
|
|
|
|
|
"size" => "Dimensione",
|
|
|
|
|
"last_changed" => "Ultima modifica",
|
|
|
|
|
"total_used_space" => "Totale spazio usato",
|
|
|
|
|
"free_space" => "Spazio disponibile",
|
|
|
|
|
"password" => "Parola chiave",
|
|
|
|
|
"upload" => "Caricamento file",
|
|
|
|
|
"failed_upload" => "Caricamento del file fallito!",
|
|
|
|
|
"failed_move" => "Spostamento del file nella cartella fallito!",
|
|
|
|
|
"wrong_password" => "Password sbagliata",
|
|
|
|
|
"make_directory" => "Nuova cartella",
|
|
|
|
|
"new_dir_failed" => "Creazione cartella fallita!",
|
|
|
|
|
"chmod_dir_failed" => "Modifica dei permessi della cartella fallita!",
|
|
|
|
|
"unable_to_read_dir" => "Non abilitato a leggere la cartella",
|
|
|
|
|
"location" => "Posizione",
|
|
|
|
|
"root" => "Indice",
|
|
|
|
|
"log_file_permission_error" => "Lo script non ha i permessi per scrivere il file di log.",
|
|
|
|
|
"upload_not_allowed" => "La configurazione dello script non permette l'upload in questa cartella.",
|
|
|
|
|
"upload_dir_not_writable" => "Questa cartella non ha i permessi di scrittura.",
|
|
|
|
|
"mobile_version" => "Visualizzazione Mobile",
|
|
|
|
|
"standard_version" => "Visualizzazione Standard",
|
|
|
|
|
"page_load_time" => "Page aperta in %.2f min",
|
|
|
|
|
"wrong_pass" => "Username o password errati",
|
|
|
|
|
"username" => "Username",
|
|
|
|
|
"log_in" => "Log in",
|
|
|
|
|
"upload_type_not_allowed" => "Questo formato di file non è abilitato per l'upload.",
|
|
|
|
|
"del" => "Cancella", // short for Delete
|
|
|
|
|
"log_out" => "Esci"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Norwegian
|
|
|
|
|
$_TRANSLATIONS["no"] = array(
|
|
|
|
|
"file_name" => "Navn",
|
|
|
|
|
"size" => "Størrelse",
|
|
|
|
|
"last_changed" => "Endret",
|
|
|
|
|
"total_used_space" => "Brukt plass",
|
|
|
|
|
"free_space" => "Resterende plass",
|
|
|
|
|
"password" => "Passord",
|
|
|
|
|
"upload" => "Last opp",
|
|
|
|
|
"failed_upload" => "Opplasting gikk galt",
|
|
|
|
|
"failed_move" => "Kunne ikke flytte objektet",
|
|
|
|
|
"wrong_password" => "Feil passord",
|
|
|
|
|
"make_directory" => "Ny mappe",
|
|
|
|
|
"new_dir_failed" => "Kunne ikke lage ny mappe",
|
|
|
|
|
"chmod_dir_failed" => "Kunne ikke endre rettigheter",
|
|
|
|
|
"unable_to_read_dir" => "Kunne ikke lese mappen",
|
|
|
|
|
"location" => "Område",
|
|
|
|
|
"root" => "Rot"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
//Polish
|
|
|
|
|
$_TRANSLATIONS["pl"] = array(
|
|
|
|
|
"file_name" => "Nazwa Pliku",
|
|
|
|
|
"size" => "Rozmiar",
|
|
|
|
|
"last_changed" => "Data Zmiany",
|
|
|
|
|
"total_used_space" => "Total used space",
|
|
|
|
|
"free_space" => "Wolnego obszaru",
|
|
|
|
|
"password" => "Haslo",
|
|
|
|
|
"upload" => "Przeslij",
|
|
|
|
|
"failed_upload" => "Przeslanie pliku nie powiodlo sie",
|
|
|
|
|
"failed_move" => "Przenosienie pliku nie powidlo sie!",
|
|
|
|
|
"wrong_password" => "Niepoprawne haslo",
|
|
|
|
|
"make_directory" => "Nowy folder",
|
|
|
|
|
"new_dir_failed" => "Blad podczas tworzenia nowego foldera",
|
|
|
|
|
"chmod_dir_failed" => "Blad podczas zmiany uprawnienia foldera",
|
|
|
|
|
"unable_to_read_dir" => "Odczytanie foldera nie powiodlo sie",
|
|
|
|
|
"location" => "Miejsce",
|
|
|
|
|
"root" => "Root",
|
|
|
|
|
"log_file_permission_error" => "Brak uprawnien aby utowrzyc dziennik dzialan.",
|
|
|
|
|
"upload_not_allowed" => "Konfiguracja zabrania przeslanie pliku do tego foldera.",
|
|
|
|
|
"upload_dir_not_writable" => "Nie mozna zapisac pliku do tego foldera.",
|
|
|
|
|
"mobile_version" => "Wersja Mobile",
|
|
|
|
|
"standard_version" => "Widok standardowy",
|
|
|
|
|
"page_load_time" => "Zaladowano w %.2f ms",
|
|
|
|
|
"wrong_pass" => "Nie poprawna nazwa uzytkownika lub hasla",
|
|
|
|
|
"username" => "Uzytkownik",
|
|
|
|
|
"log_in" => "Zaloguj sie",
|
|
|
|
|
"upload_type_not_allowed" => "Ten rodazaj pliku jest zabrioniony."
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Portuguese (Brazil)
|
|
|
|
|
$_TRANSLATIONS["pt_BR"] = array(
|
|
|
|
|
"file_name" => "Nome do arquivo",
|
|
|
|
|
"size" => "Tamanho",
|
|
|
|
|
"last_changed" => "Modificado em",
|
|
|
|
|
"total_used_space" => "Total de espaço utilizado",
|
|
|
|
|
"free_space" => "Espaço livre",
|
|
|
|
|
"password" => "Senha",
|
|
|
|
|
"upload" => "Enviar",
|
|
|
|
|
"failed_upload" => "Falha ao enviar o arquivo!",
|
|
|
|
|
"failed_move" => "Falha ao mover o arquivo para o diretório correto!",
|
|
|
|
|
"wrong_password" => "Senha errada",
|
|
|
|
|
"make_directory" => "Nova pasta",
|
|
|
|
|
"new_dir_failed" => "Falha ao criar diretório",
|
|
|
|
|
"chmod_dir_failed" => "Falha ao mudar os privilégios do diretório",
|
|
|
|
|
"unable_to_read_dir" => "Não foi possível ler o diretório",
|
|
|
|
|
"location" => "Localização",
|
|
|
|
|
"root" => "Raíz",
|
|
|
|
|
"log_file_permission_error" => "O script não tem permissão para escrever o arquivo de log.",
|
|
|
|
|
"upload_not_allowed" => "A configuração do script não permite envios neste diretório.",
|
|
|
|
|
"upload_dir_not_writable" => "Não há permissão para escrita neste diretório.",
|
|
|
|
|
"mobile_version" => "Versão Móvel",
|
|
|
|
|
"standard_version" => "Versão Padrão",
|
|
|
|
|
"page_load_time" => "Página carregada em %.2f ms",
|
|
|
|
|
"wrong_pass" => "Nome de usuário ou senha errados",
|
|
|
|
|
"username" => "Nome de Usuário",
|
|
|
|
|
"log_in" => "Log in",
|
|
|
|
|
"upload_type_not_allowed" => "Não é permitido envio de arquivos deste tipo.",
|
|
|
|
|
"del" => "Deletar",
|
|
|
|
|
"log_out" => "Log out"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Portuguese (Portugal)
|
|
|
|
|
$_TRANSLATIONS["pt_PT"] = array(
|
|
|
|
|
"file_name" => "Nome do ficheiro",
|
|
|
|
|
"size" => "Tamanho",
|
|
|
|
|
"last_changed" => "Modificado em",
|
|
|
|
|
"total_used_space" => "Total de espaço utilizado",
|
|
|
|
|
"free_space" => "Espaço livre",
|
|
|
|
|
"password" => "Palavra-passe",
|
|
|
|
|
"upload" => "Enviar",
|
|
|
|
|
"failed_upload" => "Falha ao enviar o ficheiro!",
|
|
|
|
|
"failed_move" => "Falha ao mover o ficheiro para a pasta correcta!",
|
|
|
|
|
"wrong_password" => "Palavra-passe errada",
|
|
|
|
|
"make_directory" => "Nova pasta",
|
|
|
|
|
"new_dir_failed" => "Falha ao criar pasta",
|
|
|
|
|
"chmod_dir_failed" => "Falha ao mudar os privilégios da pasta",
|
|
|
|
|
"unable_to_read_dir" => "Não foi possível ler a pasta",
|
|
|
|
|
"location" => "Localização",
|
|
|
|
|
"root" => "Raíz",
|
|
|
|
|
"log_file_permission_error" => "O script não tem permissão para escrever o ficheiro de log.",
|
|
|
|
|
"upload_not_allowed" => "A configuração do script não permite envios para esta pasta.",
|
|
|
|
|
"upload_dir_not_writable" => "Não há permissão para escrita nesta pasta.",
|
|
|
|
|
"mobile_version" => "Versão Móvel",
|
|
|
|
|
"standard_version" => "Versão Padrão",
|
|
|
|
|
"page_load_time" => "Página carregada em %.2f ms",
|
|
|
|
|
"wrong_pass" => "Nome de utilizador ou palavra-passe incorrectos",
|
|
|
|
|
"username" => "Nome de utilizador",
|
|
|
|
|
"log_in" => "Entrar",
|
|
|
|
|
"upload_type_not_allowed" => "Não é permitido o envio de ficheiros deste tipo.",
|
|
|
|
|
"del" => "Apagar",
|
|
|
|
|
"log_out" => "Sair"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Romanian
|
|
|
|
|
$_TRANSLATIONS["ro"] = array(
|
|
|
|
|
"file_name" => "Nume fisier",
|
|
|
|
|
"size" => "Marime",
|
|
|
|
|
"last_changed" => "Ultima modificare",
|
|
|
|
|
"total_used_space" => "Spatiu total utilizat",
|
|
|
|
|
"free_space" => "Spatiu disponibil",
|
|
|
|
|
"password" => "Parola",
|
|
|
|
|
"upload" => "Incarcare fisier",
|
|
|
|
|
"failed_upload" => "Incarcarea fisierului a esuat!",
|
|
|
|
|
"failed_move" => "Mutarea fisierului in alt director a esuat!",
|
|
|
|
|
"wrong_password" => "Parol gresita!",
|
|
|
|
|
"make_directory" => "Director nou",
|
|
|
|
|
"new_dir_failed" => "Eroare la crearea directorului",
|
|
|
|
|
"chmod_dir_failed" => "Eroare la modificarea drepturilor pe director",
|
|
|
|
|
"unable_to_read_dir" => "Nu s-a putut citi directorul",
|
|
|
|
|
"location" => "Locatie",
|
|
|
|
|
"root" => "Root"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Russian
|
|
|
|
|
$_TRANSLATIONS["ru"] = array(
|
|
|
|
|
"file_name" => "Имя файла",
|
|
|
|
|
"size" => "Размер",
|
|
|
|
|
"last_changed" => "Последнее изменение",
|
|
|
|
|
"total_used_space" => "Всего использовано",
|
|
|
|
|
"free_space" => "Свободно",
|
|
|
|
|
"password" => "Пароль",
|
|
|
|
|
"upload" => "Загрузка",
|
|
|
|
|
"failed_upload" => "Не удалось загрузить файл!",
|
|
|
|
|
"failed_move" => "Не удалось переместить файл в нужную папку!",
|
|
|
|
|
"wrong_password" => "Неверный пароль",
|
|
|
|
|
"make_directory" => "Новая папка",
|
|
|
|
|
"new_dir_failed" => "Не удалось создать папку",
|
|
|
|
|
"chmod_dir_failed" => "Не удалось изменить права доступа к папке",
|
|
|
|
|
"unable_to_read_dir" => "Не возможно прочитать папку",
|
|
|
|
|
"location" => "Расположение",
|
|
|
|
|
"root" => "Корневая папка",
|
|
|
|
|
"log_file_permission_error" => "Скрипт не имеет прав для записи лога файла.",
|
|
|
|
|
"upload_not_allowed" => "Загрузка в эту папку запрещена в настройках скрипта",
|
|
|
|
|
"upload_dir_not_writable" => "В эту папку запрещена запись",
|
|
|
|
|
"mobile_version" => "Мобильный вид",
|
|
|
|
|
"standard_version" => "Обычный вид",
|
|
|
|
|
"page_load_time" => "Страница загружена за %.2f мс.",
|
|
|
|
|
"wrong_pass" => "Неверное имя пользователя или пароль",
|
|
|
|
|
"username" => "Имя пользователя",
|
|
|
|
|
"log_in" => "Войти",
|
|
|
|
|
"upload_type_not_allowed" => "Этот тип файла запрещено загружать",
|
|
|
|
|
"del" => "удалить",
|
|
|
|
|
"log_out" => "выйти"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Slovensky
|
|
|
|
|
$_TRANSLATIONS["sk"] = array(
|
|
|
|
|
"file_name" => "Meno súboru",
|
|
|
|
|
"size" => "Veľkosť",
|
|
|
|
|
"last_changed" => "Posledná zmena",
|
|
|
|
|
"total_used_space" => "Použité miesto celkom",
|
|
|
|
|
"free_space" => "Voľné miesto",
|
|
|
|
|
"password" => "Heslo",
|
|
|
|
|
"upload" => "Nahranie súborov",
|
|
|
|
|
"failed_upload" => "Chyba nahrávania súboru!",
|
|
|
|
|
"failed_move" => "Nepodarilo sa presunúť súbor do vybraného adresára!",
|
|
|
|
|
"wrong_password" => "Neplatné heslo!",
|
|
|
|
|
"make_directory" => "Nový priečinok",
|
|
|
|
|
"new_dir_failed" => "Nepodarilo sa vytvoriť adresár!",
|
|
|
|
|
"chmod_dir_failed" => "Nepodarilo sa zmeniť práva adresára!",
|
|
|
|
|
"unable_to_read_dir" => "Nemôžem čítať adresár",
|
|
|
|
|
"location" => "Umiestnenie",
|
|
|
|
|
"root" => "Domov"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Spanish
|
|
|
|
|
$_TRANSLATIONS["es"] = array(
|
|
|
|
|
"file_name" => "Nombre de archivo",
|
|
|
|
|
"size" => "Medida",
|
|
|
|
|
"last_changed" => "Ultima modificación",
|
|
|
|
|
"total_used_space" => "Total espacio usado",
|
|
|
|
|
"free_space" => "Espacio libre",
|
|
|
|
|
"password" => "Contraseña",
|
|
|
|
|
"upload" => "Subir el archivo",
|
|
|
|
|
"failed_upload" => "Error al subir el archivo!",
|
|
|
|
|
"failed_move" => "Error al mover el archivo al directorio seleccionado!",
|
|
|
|
|
"wrong_password" => "Contraseña incorrecta",
|
|
|
|
|
"make_directory" => "Crear directorio",
|
|
|
|
|
"new_dir_failed" => "Error al crear el directorio",
|
|
|
|
|
"chmod_dir_failed" => "Error al cambiar los derechos de directorio",
|
|
|
|
|
"unable_to_read_dir" => "No es posible leer el directorio",
|
|
|
|
|
"location" => "Localización",
|
|
|
|
|
"root" => "Raíz"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Swedish
|
|
|
|
|
$_TRANSLATIONS["sv"] = array(
|
|
|
|
|
"file_name" => "Filnamn",
|
|
|
|
|
"size" => "Storlek",
|
|
|
|
|
"last_changed" => "Senast andrad",
|
|
|
|
|
"total_used_space" => "Totalt upptaget utrymme",
|
|
|
|
|
"free_space" => "Ledigt utrymme",
|
|
|
|
|
"password" => "Losenord",
|
|
|
|
|
"upload" => "Ladda upp",
|
|
|
|
|
"failed_upload" => "Fel vid uppladdning av fil!",
|
|
|
|
|
"failed_move" => "Fel vid flytt av fil till mapp!",
|
|
|
|
|
"wrong_password" => "Fel losenord",
|
|
|
|
|
"make_directory" => "Ny mapp",
|
|
|
|
|
"new_dir_failed" => "Fel vid skapande av mapp",
|
|
|
|
|
"chmod_dir_failed" => "Fel vid andring av mappens egenskaper",
|
|
|
|
|
"unable_to_read_dir" => "Kan inte lasa den filen",
|
|
|
|
|
"location" => "Plats",
|
|
|
|
|
"root" => "Hem"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Turkish
|
|
|
|
|
$_TRANSLATIONS["tr"] = array(
|
|
|
|
|
"file_name" => "Dosya ismi",
|
|
|
|
|
"size" => "Boyut",
|
|
|
|
|
"last_changed" => "gecmis",
|
|
|
|
|
"total_used_space" => "Toplam dosya boyutu",
|
|
|
|
|
"free_space" => "Bos alan",
|
|
|
|
|
"password" => "Sifre",
|
|
|
|
|
"upload" => "Yükleyen",
|
|
|
|
|
"failed_upload" => "Hatali dosya yüklemesi!",
|
|
|
|
|
"failed_move" => "Hatali dosya tasimasi!",
|
|
|
|
|
"wrong_password" => "Yeniden sifre",
|
|
|
|
|
"make_directory" => "Yeni dosya",
|
|
|
|
|
"new_dir_failed" => "Dosya olusturalamadi",
|
|
|
|
|
"chmod_dir_failed" => "Dosya ayari deqistirelemedi",
|
|
|
|
|
"unable_to_read_dir" => "Unable to read directory",
|
|
|
|
|
"location" => "Location",
|
|
|
|
|
"root" => "Root"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Esperanto
|
|
|
|
|
$_TRANSLATIONS["eo"] = array(
|
|
|
|
|
"file_name" => "Dosiernomo",
|
|
|
|
|
"size" => "Grando",
|
|
|
|
|
"last_changed" => "Lasta ŝanĝo",
|
|
|
|
|
"total_used_space" => "Uzata spaco",
|
|
|
|
|
"free_space" => "Disponebla spaco",
|
|
|
|
|
"password" => "pasvorto",
|
|
|
|
|
"upload" => "Alŝuto",
|
|
|
|
|
"failed_upload" => "Alŝuto malsukcesis!",
|
|
|
|
|
"failed_move" => "Movo de la dosiero malsukcesis!",
|
|
|
|
|
"wrong_password" => "Malĝusta pasvorto",
|
|
|
|
|
"make_directory" => "Nova dosierujo",
|
|
|
|
|
"new_dir_failed" => "Kreado de dosierujo malsukcesis",
|
|
|
|
|
"chmod_dir_failed" => "Ŝanĝo de dosierujaj rajtoj malsukcesis",
|
|
|
|
|
"unable_to_read_dir" => "Dosierujo ne estas legebla",
|
|
|
|
|
"location" => "Loko",
|
|
|
|
|
"root" => "Radiko",
|
|
|
|
|
"log_file_permission_error" => "La skripto ne rajtas skribi la protokolan dosieron.",
|
|
|
|
|
"upload_not_allowed" => "La skripto malpermesas alŝuti en ĉi tiun dosierujon.",
|
|
|
|
|
"upload_dir_not_writable" => "Ĉi tiu dosierujo ne rajtigas skribadon.",
|
|
|
|
|
"mobile_version" => "Vido por mobilaj iloj",
|
|
|
|
|
"standard_version" => "Defaŭlta vido",
|
|
|
|
|
"page_load_time" => "Paĝo ŝarĝita en %.2f ms",
|
|
|
|
|
"wrong_pass" => "Malĝusta salutnomo aŭ pasvorto",
|
|
|
|
|
"username" => "Salutnomo",
|
|
|
|
|
"log_in" => "Ensaluto",
|
|
|
|
|
"upload_type_not_allowed" => "Alŝuto estas malpermesita por ĉi tiu dosiertipo.",
|
|
|
|
|
"del" => "For", // short for Delete
|
|
|
|
|
"log_out" => "Adiaŭo"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
/* CSS FOR TWEAKING THE DESIGN */
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function css()
|
|
|
|
|
{
|
|
|
|
|
?>
|
|
|
|
|
<style type="text/css">
|
|
|
|
|
|
|
|
|
|
/* General styles */
|
|
|
|
|
|
|
|
|
|
BODY {
|
|
|
|
|
background-color:#FFFFFF;
|
|
|
|
|
font-family:Verdana;
|
|
|
|
|
font-size:small;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
A {
|
|
|
|
|
color: #000000;
|
|
|
|
|
text-decoration: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
A:hover {
|
|
|
|
|
text-decoration: underline;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#top {
|
|
|
|
|
width:100%;
|
|
|
|
|
padding-bottom: 20px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#top a span, #top a:hover, #top a span:hover{
|
|
|
|
|
color:#68a9d2;
|
|
|
|
|
font-weight:bold;
|
|
|
|
|
text-align:center;
|
|
|
|
|
font-size:large;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#top a {
|
|
|
|
|
display:block;
|
|
|
|
|
padding:20px 0 0 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#top span {
|
|
|
|
|
display:block;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
div.subtitle{
|
|
|
|
|
width:80%;
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
color:#68a9d2;
|
|
|
|
|
text-align:center;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#frame {
|
|
|
|
|
border: 1px solid #CDD2D6;
|
|
|
|
|
text-align:left;
|
|
|
|
|
position: relative;
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
max-width:680px;
|
|
|
|
|
overflow:hidden;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#error {
|
|
|
|
|
max-width:450px;
|
|
|
|
|
background-color:#FFE4E1;
|
|
|
|
|
color:#000000;
|
|
|
|
|
padding:7pt;
|
|
|
|
|
position: relative;
|
|
|
|
|
margin: 10pt auto;
|
|
|
|
|
text-align:center;
|
|
|
|
|
border: 1px dotted #CDD2D6;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
input {
|
|
|
|
|
border: 1px solid #CDD2D6;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.bar{
|
|
|
|
|
width:100%;
|
|
|
|
|
clear:both;
|
|
|
|
|
height:1px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* File list */
|
|
|
|
|
|
|
|
|
|
table.table {
|
|
|
|
|
width:100%;
|
|
|
|
|
border-collapse: collapse;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
table.table td{
|
|
|
|
|
padding:3px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
table.table tr.row.two {
|
|
|
|
|
background-color:#fcfdfe;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
table.table tr.row.one {
|
|
|
|
|
background-color:#f8f9fa;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
table.table tr.row td.icon {
|
|
|
|
|
width:25px;
|
|
|
|
|
padding-top:3px;
|
|
|
|
|
padding-bottom:1px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
table.table td.del {
|
|
|
|
|
width:25px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
table.table tr.row td.size {
|
|
|
|
|
width: 100px;
|
|
|
|
|
text-align: right;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
table.table tr.row td.changed {
|
|
|
|
|
width: 150px;
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
table.table tr.header img {
|
|
|
|
|
vertical-align:bottom;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
table img{
|
|
|
|
|
border:0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Info area */
|
|
|
|
|
|
|
|
|
|
#info {
|
|
|
|
|
color:#000000;
|
|
|
|
|
font-family:Verdana;
|
|
|
|
|
max-width:680px;
|
|
|
|
|
position: relative;
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
text-align:center;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Thumbnail area */
|
|
|
|
|
|
|
|
|
|
#thumb {
|
|
|
|
|
position:absolute;
|
|
|
|
|
border: 1px solid #CDD2D6;
|
|
|
|
|
background:#f8f9fa;
|
|
|
|
|
display:none;
|
|
|
|
|
padding:3px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#thumb img {
|
|
|
|
|
display:block;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Login bar (at the bottom of the page) */
|
|
|
|
|
#login_bar {
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
margin-top:2px;
|
|
|
|
|
max-width:680px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#login_bar input.submit{
|
|
|
|
|
float:right;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Upload area */
|
|
|
|
|
|
|
|
|
|
#upload {
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
margin-top:2px;
|
|
|
|
|
max-width:680px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#upload #password_container {
|
|
|
|
|
margin-right:20px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#upload #newdir_container, #upload #password_container {
|
|
|
|
|
float:left;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#upload #upload_container{
|
|
|
|
|
float:right;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#upload input.upload_dirname, #upload input.upload_password{
|
|
|
|
|
width:140px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#upload input.upload_file{
|
|
|
|
|
font-size:small;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Breadcrumbs */
|
|
|
|
|
|
|
|
|
|
div.breadcrumbs {
|
|
|
|
|
display:block;
|
|
|
|
|
padding:1px 3px;
|
|
|
|
|
color:#cccccc;
|
|
|
|
|
font-size:x-small;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
div.breadcrumbs a{
|
|
|
|
|
display:inline-block;
|
|
|
|
|
color:#cccccc;
|
|
|
|
|
padding:2px 0;
|
|
|
|
|
font-size:small;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Login area */
|
|
|
|
|
|
|
|
|
|
#login {
|
|
|
|
|
max-width:280px;
|
|
|
|
|
text-align:right;
|
|
|
|
|
margin:15px auto 50px auto;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#login div {
|
|
|
|
|
display:block;
|
|
|
|
|
width:100%;
|
|
|
|
|
margin-top:5px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#login label{
|
|
|
|
|
width: 120px;
|
|
|
|
|
text-align: right;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Mobile interface */
|
|
|
|
|
|
|
|
|
|
body.mobile #frame, body.mobile #info, body.mobile #upload {
|
|
|
|
|
max-width:none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
body.mobile {
|
|
|
|
|
font-size:medium;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
body.mobile a.item {
|
|
|
|
|
display:block;
|
|
|
|
|
padding:10px 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
body.mobile a.item span.size {
|
|
|
|
|
float:right;
|
|
|
|
|
margin-left:10px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
body.mobile table.table {
|
|
|
|
|
margin-bottom:30px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
body.mobile table.table tr td {
|
|
|
|
|
border-top: 1px solid #CDD2D6;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
body.mobile table.table tr.last td {
|
|
|
|
|
border-bottom: 1px solid #CDD2D6;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
body.mobile #top {
|
|
|
|
|
padding-bottom:3px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
body.mobile #top a {
|
|
|
|
|
padding-top:3px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
body.mobile #upload #password_container, body.mobile #upload #upload_container, body.mobile #upload #newdir_container {
|
|
|
|
|
float:none;
|
|
|
|
|
margin-top:5px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
body.mobile #upload input.upload_dirname, body.mobile #upload input.upload_password{
|
|
|
|
|
width:240px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
body.mobile #upload {
|
|
|
|
|
margin-bottom:15px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
</style>
|
|
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
/* IMAGE CODES IN BASE64 */
|
|
|
|
|
/* You can generate your own with a converter */
|
|
|
|
|
/* Like here: http://www.motobit.com/util/base64-decoder-encoder.asp */
|
|
|
|
|
/* Or here: http://www.greywyvern.com/code/php/binary2base64 */
|
|
|
|
|
/* Or just use PHP base64_encode() function */
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$_IMAGES = array();
|
|
|
|
|
|
|
|
|
|
$_IMAGES["arrow_down"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABbSURBVCjPY/jPgB8yDCkFB/7v+r/5/+r/
|
|
|
|
|
i/7P+N/3DYuC7V93/d//fydQ0Zz/9eexKFgtsejLiv8b/8/8X/WtUBGrGyZLdH6f8r/sW64cTkdW
|
|
|
|
|
SRS+zpQbgiEJAI4UCqdRg1A6AAAAAElFTkSuQmCC";
|
|
|
|
|
$_IMAGES["arrow_up"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABbSURBVCjPY/jPgB8yDDkFmyVWv14kh1PB
|
|
|
|
|
eoll31f/n/ytUw6rgtUSi76s+L/x/8z/Vd8KFbEomPt16f/1/1f+X/S/7X/qeSwK+v63/K/6X/g/
|
|
|
|
|
83/S/5hvQywkAdMGCdCoabZeAAAAAElFTkSuQmCC";
|
|
|
|
|
$_IMAGES["del"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJdSURBVDjLpZP7S1NhGMf9W7YfogSJboSE
|
|
|
|
|
UVCY8zJ31trcps6zTI9bLGJpjp1hmkGNxVz4Q6ildtXKXzJNbJRaRmrXoeWx8tJOTWptnrNryre5
|
|
|
|
|
YCYuI3rh+8vL+/m8PA/PkwIg5X+y5mJWrxfOUBXm91QZM6UluUmthntHqplxUml2lciF6wrmdHri
|
|
|
|
|
I0Wx3xw2hAediLwZRWRkCPzdDswaSvGqkGCfq8VEUsEyPF1O8Qu3O7A09RbRvjuIttsRbT6HHzeb
|
|
|
|
|
sDjcB4/JgFFlNv9MnkmsEszodIIY7Oaut2OJcSF68Qx8dgv8tmqEL1gQaaARtp5A+N4NzB0lMXxo
|
|
|
|
|
n/uxbI8gIYjB9HytGYuusfiPIQcN71kjgnW6VeFOkgh3XcHLvAwMSDPohOADdYQJdF1FtLMZPmsl
|
|
|
|
|
vhZJk2ahkgRvq4HHUoWHRDqTEDDl2mDkfheiDgt8pw340/EocuClCuFvboQzb0cwIZgki4KhzlaE
|
|
|
|
|
6w0InipbVzBfqoK/qRH94i0rgokSFeO11iBkp8EdV8cfJo0yD75aE2ZNRvSJ0lZKcBXLaUYmQrCz
|
|
|
|
|
DT6tDN5SyRqYlWeDLZAg0H4JQ+Jt6M3atNLE10VSwQsN4Z6r0CBwqzXesHmV+BeoyAUri8EyMfi2
|
|
|
|
|
FowXS5dhd7doo2DVII0V5BAjigP89GEVAtda8b2ehodU4rNaAW+dGfzlFkyo89GTlcrHYCLpKD+V
|
|
|
|
|
7yeeHNzLjkp24Uu1Ed6G8/F8qjqGRzlbl2H2dzjpMg1KdwsHxOlmJ7GTeZC/nesXbeZ6c9OYnuxU
|
|
|
|
|
c3fmBuFft/Ff8xMd0s65SXIb/gAAAABJRU5ErkJggg==";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$_IMAGES["archive"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJmSURBVDjLhZNNS5RRGIav8+HMvDNO5ZhO
|
|
|
|
|
YqXQF2FgVNRCCKM2EbQ1ok2b/AG16F/0ge5qUwitghbWooikiIhI3AQVFER+VsyMztg7vuecp4U2
|
|
|
|
|
ORH5wLM5cK7n5r65lYgAoJTaDhQBw/9nAfgiIgEAEWENcjiO43KSJN45J//aOI5lZGTkBtALaBFp
|
|
|
|
|
AhxNksRXq1Wp1WqNrVQqUiqVZH5+XpxzMjs7K6Ojow2Imri9Z1Dntjwo2dObZr7vpKXFoDVAwFpN
|
|
|
|
|
vR6za9du+vr6KRQKrKysEEJgbGzs5vDw8DX1/N6Rrx0HOrpfvOqnWs0CCgQkaJTJEkIAHENDFygW
|
|
|
|
|
i01mWGuP2Vw+KnT3djPUM0eLzZO4L6ikztQz6Dl2i4ePxgk+IYoylMtlQgg45+js7FyFKKUk/llh
|
|
|
|
|
evplg9zTtR8RC0AmSlGtrGCMxVqF9x5j/gRlRQLZbIbt3fvW4lwmpS0IhCA4FwgEjDForVFK/Ta9
|
|
|
|
|
oYDa8jdmpt83Hndu86DaEQkgHgkBrXXT5QaA4FuiqI3itl4IPzHWk7G5NQUBQgISUEoBYIxpVlAr
|
|
|
|
|
le9+fCbntFY6qM2Z4BOWazFzS13UPrwjlUqzuFhtXF9NZZ0Cn7hLc59mrly+/uPQ+OO3T+6PP8W7
|
|
|
|
|
OpH1fJ6cpLU1hUsSphcqRLlNFHK6GXD84nuvlCoDS1FrgZn28+T5zom933jzeoKpyZeY9oPceOJp
|
|
|
|
|
z1e4erbtLw/WTTBZWVpaVNmcYuvWDk6eOsPAwCCLseHOpCOfNg0vgACg1rXxSL1enzDGZAC9QSOD
|
|
|
|
|
9345nU4PrgfsWKvzRp9/jwcWfgF7VEKXfHY5kwAAAABJRU5ErkJggg==";
|
|
|
|
|
$_IMAGES["audio"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIvSURBVDjLjZPLaxNRFIeriP+AO7Gg7nRX
|
|
|
|
|
qo1ogoKCK0Fbig8QuxKhPop04SYLNYqlKpEmQlDBRRcFFWlBqqJYLVpbq6ktaRo0aWmamUxmJpN5
|
|
|
|
|
ZvKoP++9mmlqWuzAt7jc+X2Hcy6nDkAdhXxbCI2Epv+wlbDeyVUJGm3bzpVKpcVyuYyVIPcIBAL3
|
|
|
|
|
qiXVgiYaNgwDpmk6qKoKRVEgCAKT8DyPYDDoSCrhdYHrO9qzkdOQvp+E+O04hC+tED63gBs+QiDn
|
|
|
|
|
hQgTWJYFWiQUCv2RUEH/g4YNXwdcT/VEJ6xkF8zEDRixq1CnriD94SikH08gikJNS2wmVLDwybON
|
|
|
|
|
H3GbNt8DY+YMrDk/tGkvhOFmKPE+pxVJkpDJZMBx3JJAHN+/MTPq8amxdtj8fWjhwzB+diH5ag9y
|
|
|
|
|
8V6QubDhUYmmaWwesiwvCYRRtyv9ca9oc37kk3egTbbBiPowP+iGOHGT0A1h7BrS43ehiXHous5E
|
|
|
|
|
joCEx3IzF6FMnYMcPgs95iOCW1DDXqTfnEBqsBnRR9shTvYibyhsiBRHwL13dabe7r797uHOx3Kk
|
|
|
|
|
m1T2IDfhhTRyAfMDh5Aauox8Ns5aKRQKDNrSsiHSZ6SHoq1i9nkDuNfHkHi2D9loHwtSisUig4ZX
|
|
|
|
|
FaSG2pB8cZBUPY+ila0JV1Mj8F/a3DHbfwDq3Mtlb12R/EuNoKN10ylLmv612h6swKIj+CvZRQZk
|
|
|
|
|
0ou1hMm/OtveKkE9laxhnSvQ1a//DV9axd5NSHlCAAAAAElFTkSuQmCC";
|
|
|
|
|
$_IMAGES["code"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHtSURBVDjLjZM9T9tQFIYpQ5eOMBKlW6eW
|
|
|
|
|
IQipa8RfQKQghEAKqZgKFQgmFn5AWyVDCipVQZC2EqBWlEqdO2RCpAssQBRsx1+1ndix8wFvfW6w
|
|
|
|
|
cUhQsfTI0j33PD7n+N4uAF2E+/S5RFwG/8Njl24/LyCIOI6j1+v1y0ajgU64cSSTybdBSVAwSMmm
|
|
|
|
|
acKyLB/DMKBpGkRRZBJBEJBKpXyJl/yABLTBtm1Uq1X2JsrlMnRdhyRJTFCpVEAfSafTTUlQoFs1
|
|
|
|
|
luxBAkoolUqQZbmtJTYTT/AoHInOfpcwtVtkwcSBgrkDGYph+60oisIq4Xm+VfB0+U/P0Lvj3NwP
|
|
|
|
|
GfHPTcHMvoyFXwpe7UmQtAqTUCU0D1VVbwTPVk5jY19Fe3ZfQny7CE51WJDXqpjeEUHr45ki9rIq
|
|
|
|
|
a4dmQiJfMLItGEs/FcQ2ucbRmdnSYy5vYWyLx/w3EaMfLmBaDpMQvuDJ65PY8Dpnz3wpYmLtApzc
|
|
|
|
|
rIAqmfrEgdZH1grY/a36w6Xz0DKD8ES25/niYS6+wWE8mWfByY8cXmYEJFYLkHUHtVqNQcltAvoL
|
|
|
|
|
D3v7o/FUHsNvzlnwxfsCEukC/ho3yUHaBN5Buo17Ojtyl+DqrnvQgUtfcC0ZcAdkUeA+ye7eMru9
|
|
|
|
|
AUGIJPe4zh509UP/AAfNypi8oj/mAAAAAElFTkSuQmCC";
|
|
|
|
|
$_IMAGES["database"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHVSURBVDjLjZPLaiJBFIZNHmJWCeQdMuT1
|
|
|
|
|
Mi/gYlARBRUkao+abHUhmhgU0QHtARVxJ0bxhvfGa07Of5Iu21yYFPyLrqrz1f+f6rIRkQ3icca6
|
|
|
|
|
ZF39RxesU1VnAVyuVqvJdrvd73Y7+ky8Tk6n87cVYgVcoXixWNByuVSaTqc0Ho+p1+sJpNvtksvl
|
|
|
|
|
UhCb3W7/cf/w+BSLxfapVIqSySRlMhnSdZ2GwyHN53OaTCbU7/cFYBgG4RCPx/MKub27+1ur1Xqj
|
|
|
|
|
0YjW6zWxCyloNBqUSCSkYDab0WAw+BBJeqLFtQpvGoFqAlAEaZomuc0ocAQnnU7nALiJ3uh8whgn
|
|
|
|
|
ttttarVaVCgUpCAUCgnQhMAJ+gG3CsDZa7xh1mw2ZbFSqYgwgsGgbDQhcIWeAHSIoP1pcGeNarUq
|
|
|
|
|
gFKpJMLw+/0q72azkYhmPAWIRmM6AGbXc7kc5fN5AXi9XgWACwAguLEAojrfsVGv1yV/sVikcrks
|
|
|
|
|
AIfDIYUQHEAoPgLwT3GdzWYNdBfXh3xwApDP5zsqtkoBwuHwaSAQ+OV2u//F43GKRCLEc5ROpwVo
|
|
|
|
|
OngvBXj7jU/wwZPPX72DT7RXgDfIT27QEgvfKea9c3m9FsA5IN94zqbw9M9fAEuW+zzj8uLvAAAA
|
|
|
|
|
AElFTkSuQmCC";
|
|
|
|
|
$_IMAGES["directory"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGrSURBVDjLxZO7ihRBFIa/6u0ZW7GHBUV0
|
|
|
|
|
UQQTZzd3QdhMQxOfwMRXEANBMNQX0MzAzFAwEzHwARbNFDdwEd31Mj3X7a6uOr9BtzNjYjKBJ6ni
|
|
|
|
|
cP7v3KqcJFaxhBVtZUAK8OHlld2st7Xl3DJPVONP+zEUV4HqL5UDYHr5xvuQAjgl/Qs7TzvOOVAj
|
|
|
|
|
xjlC+ePSwe6DfbVegLVuT4r14eTr6zvA8xSAoBLzx6pvj4l+DZIezuVkG9fY2H7YRQIMZIBwycmz
|
|
|
|
|
H1/s3F8AapfIPNF3kQk7+kw9PWBy+IZOdg5Ug3mkAATy/t0usovzGeCUWTjCz0B+Sj0ekfdvkZ3a
|
|
|
|
|
bBv+U4GaCtJ1iEm6ANQJ6fEzrG/engcKw/wXQvEKxSEKQxRGKE7Izt+DSiwBJMUSm71rguMYhQKr
|
|
|
|
|
BygOIRStf4TiFFRBvbRGKiQLWP29yRSHKBTtfdBmHs0BUpgvtgF4yRFR+NUKi0XZcYjCeCG2smkz
|
|
|
|
|
LAHkbRBmP0/Uk26O5YnUActBp1GsAI+S5nRJJJal5K1aAMrq0d6Tm9uI6zjyf75dAe6tx/SsWeD/
|
|
|
|
|
/o2/Ab6IH3/h25pOAAAAAElFTkSuQmCC";
|
|
|
|
|
$_IMAGES["graphics"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH8SURBVDjLjZPLaxNRFIfHLrpx10WbghXx
|
|
|
|
|
H7DQx6p14cadiCs31Y2LLizYhdBFWyhYaFUaUxLUQFCxL61E+0gofWGLRUqGqoWp2JpGG8g4ybTJ
|
|
|
|
|
JJm86897Ls4QJIm98DED9/6+mXNmjiAIwhlGE6P1P5xjVAEQiqHVlMlkYvl8/rhQKKAUbB92u91W
|
|
|
|
|
SkKrlcLJZBK6rptomoZoNApFUbhElmU4HA4u8YzU1PsmWryroxYrF9CBdDqNbDbLr0QikUAsFkM4
|
|
|
|
|
HOaCVCoFesjzpwMuaeXuthYcw4rtvG4KKGxAAgrE43FEIhGzlJQWxE/RirQ6i8/T7XjXV2szBawM
|
|
|
|
|
8yDdU91GKaqqInQgwf9xCNmoB7LYgZn+Oud0T121KfiXYokqf8X+5jAyR3NQvtzEq96z4os7lhqz
|
|
|
|
|
ieW6TxJN3UVg8yEPqzu38P7xRVy+cPoay52qKDhUf0HaWsC3xRvstd3Qvt9mTWtEOPAJf/+L8oKA
|
|
|
|
|
fwfLnil43z7Bkusqdr2X4Btvg1+c5fsVBZJ/H9aXbix/2EAouAVx4zVmHl2BtOrkPako2DsIwule
|
|
|
|
|
xKhnG/cmfbg+uIbukXkooR/I5XKcioLu+8/QNTyGzqE36OidQNeDJayLe7yZBuUEv8t9iRIcU6Z4
|
|
|
|
|
FprZ36fTxknC7GyCBrBY0ECSE4yzAY1+gyH4Ay9cw2Ifwv9mAAAAAElFTkSuQmCC";
|
|
|
|
|
$_IMAGES["image"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGWSURBVBgZpcE/a1NhGMbh3/OeN56cKq2D
|
|
|
|
|
p6AoCOKmk4uCn8DNycEOIojilr2TaBfRzVnESQR3Bz+FFDoWA2IjtkRqmpyc97k9qYl/IQV7XSaJ
|
|
|
|
|
w4g0VlZfP0m13dwepPbuiH85fyhyWCx4/ubxjU6kkdxWHt69VC6XpZlFBAhwJgwJJHAmRKorbj94
|
|
|
|
|
ewvoRBrbuykvT5R2/+lLTp05Tp45STmEJYJBMAjByILxYeM9jzr3GCczGpHGYAQhRM6fO8uFy1fJ
|
|
|
|
|
QoaUwCKYEcwwC4QQaGUBd36KTDmQ523axTGQmEcIEBORKQfG1ZDxcA/MkBxXwj1ggCQyS9TVAMmZ
|
|
|
|
|
iUxJ8Ln/kS+9PmOvcSW+jrao0mmMH5bzHfa+9UGBmciUBJ+2Fmh1h+yTQCXSkJkdCrpd8btIwwEJ
|
|
|
|
|
QnaEkOXMk7XaiF8CUxL/JdKQOwb0Ntc5SG9zHXQNd/ZFGsaEeLa2ChjzXQcqZiKNxSL0vR4unVww
|
|
|
|
|
MENMCATib0ZdV+QtE41I42geXt1Ze3dlMNZFdw6Ut6CIvKBhkjiM79Pyq1YUmtkKAAAAAElFTkSu
|
|
|
|
|
QmCC";
|
|
|
|
|
$_IMAGES["presentation"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHeSURBVDjLjZO/i1NBEMc/u+/lBYxiLkgU
|
|
|
|
|
7vRstLEUDyxtxV68ykIMWlocaGHrD1DxSAqxNf4t115jo6DYhCRCEsk733s7u2PxkuiRoBkYdmGZ
|
|
|
|
|
z3xndsaoKgDGmC3gLBDxbxsA31U1AKCqzCBXsywbO+e8iOgqz7JM2+32W+AiYFX1GGDHOeen06mm
|
|
|
|
|
abrwyWSio9FI+/2+ioj2ej3tdDoLiJm+bimAhgBeUe9RmbkrT5wgT97RaDQoioIQAt1ud7/Var1h
|
|
|
|
|
+uq+/s9+PLilw+FwqSRgJ1YpexHSKenHF4DFf/uC3b7CydsPsafraO5IkoTxeEwIARGh2WwCYNUJ
|
|
|
|
|
AOmHZ5y4eY/a7h4hPcIdHvDz/fMSnjviOCZJEiqVCtVqdfEl8RygHkz9DLZWQzOHisd9OizfckcU
|
|
|
|
|
RRhjMMbMm14CQlEC/NfPjPd2CSJQCEEEDWYBsNZijFkaCqu5Ky+blwl5geaOUDg0c8TnNssSClkE
|
|
|
|
|
R1GEtXYZcOruI6ILl1AJqATirW02Hr8sFThBVZfklyXMFdQbbDzdXzm78z4Bx7KXTcwdgzs3yizu
|
|
|
|
|
zxAhHvVh4avqBzAzaQa4JiIHgGE9C3EcX7ezhVIgeO9/AWGdYO/9EeDNX+t8frbOdk0FHhj8BvUs
|
|
|
|
|
fP0TH5dOAAAAAElFTkSuQmCC";
|
|
|
|
|
$_IMAGES["spreadsheet"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIpSURBVDjLjZNPSFRRFMZ/9707o0SOOshM
|
|
|
|
|
0x/JFtUmisKBooVEEUThsgi3KS0CN0G2lagWEYkSUdsRWgSFG9sVFAW1EIwQqRZiiDOZY804b967
|
|
|
|
|
954249hUpB98y/PjO5zzKREBQCm1E0gDPv9XHpgTEQeAiFCDHAmCoBhFkTXGyL8cBIGMjo7eA3YD
|
|
|
|
|
nog0ALJRFNlSqSTlcrnulZUVWV5elsXFRTHGyMLCgoyNjdUhanCyV9ayOSeIdTgnOCtY43DWYY3j
|
|
|
|
|
9ulxkskkYRjinCOXy40MDAzcZXCyVzZS38MeKRQKf60EZPXSXInL9y+wLZMkCMs0RR28mJ2grSWJ
|
|
|
|
|
Eo+lH9/IpNPE43GKxSLOOYwxpFIpAPTWjiaOtZ+gLdFKlJlD8u00xWP8lO/M5+e5efEB18b70Vqj
|
|
|
|
|
lMJai++vH8qLqoa+nn4+fJmiNNPCvMzQnIjzZuo1V88Ns3/HAcKKwfd9tNZorYnFYuuAMLDMfJ3m
|
|
|
|
|
+fQznr7L0Vk9zGpLmezB4zx++YggqhAFEZ7n4ft+HVQHVMoB5++cJNWaRrQwMjHM9qCLTFcnJJq5
|
|
|
|
|
9WSIMLAopQDwfR/P8+oAbaqWK2eGSGxpxVrDnvQ+3s++4tPnj4SewYscUdUgIiilcM41/uXZG9kN
|
|
|
|
|
z9h9aa+EYdjg+hnDwHDq+iGsaXwcZ6XhsdZW+FOqFk0B3caYt4Bic3Ja66NerVACOGttBXCbGbbW
|
|
|
|
|
rgJW/VbnXbU6e5tMYIH8L54Xq0cq018+AAAAAElFTkSuQmCC";
|
|
|
|
|
$_IMAGES["textdocument"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIdSURBVDjLjZO7a5RREMV/9/F9yaLBzQY3
|
|
|
|
|
CC7EpBGxU2O0EBG0sxHBUitTWYitYCsiiJL0NvlfgoWSRpGA4IMsm43ZXchmv8e9MxZZN1GD5MCB
|
|
|
|
|
W8yce4aZY1QVAGPMaWAacPwfm8A3VRUAVJWhyIUsy7plWcYQgh7GLMt0aWnpNTADWFX9Q2C+LMu4
|
|
|
|
|
s7Oj/X5/xF6vp51OR1utloYQtNls6vLy8kjE3Huz9qPIQjcUg/GZenVOokIEiSBBCKUSQ+TFwwa1
|
|
|
|
|
Wo2iKBARVlZW3iwuLr7izssPnwZ50DLIoWz9zPT+s/fabrf/GQmY97GIIXGWp28/08si5+oV1jcG
|
|
|
|
|
TCSO6nHH2pddYqmkaUq320VECCFQr9cBsBIVBbJcSdXQmK7Q6Qsnq54sj2gBplS896RpSpIkjI2N
|
|
|
|
|
jVZitdh7jAOSK6trXcpC2GjlfP1esHD+GDYozjm893jvSZJkXyAWe+ssc6W5G9naLqkaw/pGxBrl
|
|
|
|
|
1tVpJCrWWpxzI6GRgOQKCv2BYHPl5uUatROeSsVy7eIkU9UUiYoxBgDnHNbagw4U6yAWwpmphNvX
|
|
|
|
|
T6HAhAZuLNRx1iDDWzHG/L6ZEbyJVLa2c54/PgsKgyzw5MHcqKC9nROK/aaDvwN4KYS7j959DHk2
|
|
|
|
|
PtuYnBUBFUEVVBQRgzX7I/wNM7RmgEshhFXAcDSI9/6KHQZKAYkxDgA5SnOMcReI5kCcG8M42yM6
|
|
|
|
|
iMDmL261eaOOnqrOAAAAAElFTkSuQmCC";
|
|
|
|
|
$_IMAGES["unknown"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC4SURBVCjPdZFbDsIgEEWnrsMm7oGGfZro
|
|
|
|
|
hxvU+Iq1TyjU60Bf1pac4Yc5YS4ZAtGWBMk/drQBOVwJlZrWYkLhsB8UV9K0BUrPGy9cWbng2CtE
|
|
|
|
|
EUmLGppPjRwpbixUKHBiZRS0p+ZGhvs4irNEvWD8heHpbsyDXznPhYFOyTjJc13olIqzZCHBouE0
|
|
|
|
|
FRMUjA+s1gTjaRgVFpqRwC8mfoXPPEVPS7LbRaJL2y7bOifRCTEli3U7BMWgLzKlW/CuebZPAAAA
|
|
|
|
|
AElFTkSuQmCC";
|
|
|
|
|
$_IMAGES["vectorgraphics"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIWSURBVDjLhZNPbxJRFMWhRrYu3NrExIUb
|
|
|
|
|
dzWte6M7d34Eo2Hjxm8gwZUxIYEARUKAWgwbV0BpxAW11bpQFrCoCVEMDplhQMow782/enx3WsiU
|
|
|
|
|
0jrJ2bz7zu+9e95cHwAfSXzXhFaEVv+j60JLM58HsGIYxsi27SPHcbBIoo5oNBrxQryAVTJPJhPo
|
|
|
|
|
uu6q0+mgVquh0WhAlmUX0uv1EIvFZpCp2U8A2sA5h2maYIyhUChA0zTU63UoiuICaJ0OSSaTx5B5
|
|
|
|
|
AJnpqqVSCbmNTWxVt9FsNtHv98+05GYyD7AsC5VKBZvFd/j2k6Etc6gjHfLgELKiujeRJGkxQGSA
|
|
|
|
|
YDCIx8+eI/ORIb3Lkf0sWvmio9aaoC2NoQ7+QFUHCwFr5XIZ8bfvhZFhq2XgU9tEb2Tj99DCgcTx
|
|
|
|
|
9YeOg64GZTCGPQdYEnpaLBbxZl9HfIejo1rg5nGvti3CMyxouonhIYM8ZG7NBWSz2YepVKobiUR+
|
|
|
|
|
UXjrwry+wzBm9qnAqD03YHohbsASUP+ly2u+XC7XzmQyt9LpdJc2xuscr0ULU9NUFC6JDiFRCy4g
|
|
|
|
|
n88/EWqFw+EEmfL7HK8+8FOAqdmrWYjC7E8kElcCgcAdWmx2LbzY5mCmc+YWXp33H/w1LQehKhPP
|
|
|
|
|
ZuK8mTjR0QxwArktQtKpsLHHEarwC81ir+ZOrwewTBCiXr157/7d0PfqjQcvH10w1jT6y/8A/nHJ
|
|
|
|
|
HcAgm2AAAAAASUVORK5CYII=";
|
|
|
|
|
$_IMAGES["video"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIfSURBVDjLpZNPaBNBGMXfbrubzBqbg4kL
|
|
|
|
|
0lJLgiVKE/AP6Kl6UUFQNAeDIAjVS08aELx59GQPAREV/4BeiqcqROpRD4pUNCJSS21OgloISWME
|
|
|
|
|
Z/aPb6ARdNeTCz92mO+9N9/w7RphGOJ/nsH+olqtvg+CYJR8q9VquThxuVz+oJTKeZ63Uq/XC38E
|
|
|
|
|
0Jj3ff8+OVupVGLbolkzQw5HOqAxQU4wXWWnZrykmYD0QsgAOJe9hpEUcPr8i0GaJ8n2vs/sL2h8
|
|
|
|
|
R66TpVfWTdETHWE6GRGKjGiiKNLii5BSLpN7pBHpgMYhMkm8tPUWz3sL2D1wFaY/jvnWcTTaE5Dy
|
|
|
|
|
jMfTT5J0XIAiTRYn3ASwZ1MKbTmN7z+KaHUOYqmb1fcPiNa4kQBuyvWAHYfcHGzDgYcx9NKrwJYH
|
|
|
|
|
CAyF21JiPWBnXMAQOea6bmn+4ueYGZi8gtymNVobF7BG5prNpjd+eW6X4BSUD0gOdCpzA8MpA/v2
|
|
|
|
|
v15kl4+pK0emwHSbjJGBlz+vYM1fQeDrYOBTdzOGvDf6EFNr+LYjHbBgsaCLxr+moNQjU2vYhRXp
|
|
|
|
|
gIUOmSWWnsJRfjlOZhrexgtYDZ/gWbetNRbNs6QT10GJglNk64HMaGgbAkoMo5fiFNy7CKDQUGqE
|
|
|
|
|
5r38YktxAfSqW7Zt33l66WtkAkACjuNsaLVaDxlw5HdJ/86aYrG4WCgUZD6fX+jv/U0ymfxoWVZo
|
|
|
|
|
muZyf+8XqfGP49CCrBUAAAAASUVORK5CYII=";
|
|
|
|
|
$_IMAGES["webpage"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJwSURBVDjLjZPdT1JhHMetvyO3/gfLKy+6
|
|
|
|
|
8bLV2qIAq7UyG6IrdRPL5hs2U5FR0MJIAqZlh7BVViI1kkyyiPkCyUtztQYTYbwJE8W+Pc8pjofK
|
|
|
|
|
1dk+OxfP+X3O83srAVBCIc8eQhmh/B/sJezm4niCsvX19cTm5uZWPp/H3yDnUKvVKr6ELyinwWtr
|
|
|
|
|
a8hkMhzJZBLxeBwrKyusJBwOQ6PRcJJC8K4DJ/dXM04DOswNqNOLybsRo9N6LCy7kUgkEIlEWEE2
|
|
|
|
|
mwX9iVar/Smhglqd8IREKwya3qhg809gPLgI/XsrOp/IcXVMhqnFSayurv6RElsT6ZCoov5u1fzU
|
|
|
|
|
VwvcKRdefVuEKRCA3OFHv2MOxtlBdFuaMf/ZhWg0yt4kFAoVCZS3Hd1gkpOwRt9h0LOES3YvamzP
|
|
|
|
|
cdF7A6rlPrSbpbhP0kmlUmw9YrHYtoDku2T6pEZ/2ICXEQ8kTz+g2TkNceAKKv2nIHachn6qBx1M
|
|
|
|
|
I5t/Op1mRXzBd31AiRafBp1vZyEcceGCzQ6p24yjEzocGT6LUacS0iExcrkcK6Fsp6AXLRnmFOjy
|
|
|
|
|
PMIZixPHmAAOGxZQec2OQyo7zpm6cNN6GZ2kK1RAofPAr8GA4oUMrdNNkIw/wPFhDwSjX3Dwlg0C
|
|
|
|
|
Qy96HreiTlcFZsaAjY0NNvh3QUXtHeHcoKMNA7NjqLd8xHmzDzXDRvRO1KHtngTyhzL4SHeooAAn
|
|
|
|
|
KMxBtUYQbGWa0Dc+AsWzSVy3qkjeItLCFsz4XoNMaRFFAm4SyTXbmQa2YHQSGacR/pAXO+zGFif4
|
|
|
|
|
JdlHCpShBzstEz+YfJtmt5cnKKWS/1jnAnT1S38AGTynUFUTzJcAAAAASUVORK5CYII=";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$_IMAGES["7z"] = $_IMAGES["archive"];
|
|
|
|
|
$_IMAGES["as"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIqSURBVDjLjZPNi1JRGMan/ooWDbSKNq2s
|
|
|
|
|
gZqh0UgqKVoOU7OooEWLgZi+JIaYGolaRAS60JXuxJWoIC6E0KAgAzGbCqpFmua393qv9+PoPJ33
|
|
|
|
|
THPHcYy68HDPvee8v/e8zznvFIApEn8Octm4Zv6hQ1z7rbgRgE3X9S5jbDgYDDBJfB5er/flKGQU
|
|
|
|
|
MEPBiqJAVVVLkiSh0+mgVqsJSLVahc/nsyDbwfsIQAs0TYNhGNDevIX29BnUxx50u13U63UB6Pf7
|
|
|
|
|
oCR+v38LMg6gYCOdhnb1GgaeVajnL0CWZTQajT0lCU/GAea379AWFsHu3kJ/4TLUO/etUprNpthJ
|
|
|
|
|
pVL5C4Ax6I/WwVbvoe9+AMazMvrHzSMI7YT8aLVakwHs8xdoS1eguC7CeJUBa3fEwkKhgEwmI+pP
|
|
|
|
|
8/Ly+fxkgP78BZj7NgYP3ZDn7FDXPGJhKpVCuVwW/tA7HA7vBawdPrJEmZl7hQc7IJ2YtwCxWEyU
|
|
|
|
|
IgzmCgaDuwF157kDlVOnC+bKMmS7E8a79zA3PsEs/0Q8Hkc2m4VpmkLkB5URjUa3AMpZ1+uew/lV
|
|
|
|
|
mnMw/cZ1qOtPrGOirKVSCclk0gKQQqGQOFYB6NnPKPKsfdNYvgnJdQnsV23XWRMkkUig3W6LMSkQ
|
|
|
|
|
COyUIJ+ch3R8Fj+O2j6YHzc2J/VAsVgUEBpHIhHkcjkaDy0P/hh5jBuk0sQ4gO4AXSIa09b595Cv
|
|
|
|
|
7YnuHQFME+Q/2nlb1PrTvwGo2K3gWVH3FgAAAABJRU5ErkJggg==";
|
|
|
|
|
$_IMAGES["avi"] = $_IMAGES["video"];
|
|
|
|
|
$_IMAGES["bz2"] = $_IMAGES["archive"];
|
|
|
|
|
$_IMAGES["c"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHdSURBVDjLjZNLS+NgFIad+R0KwuzcSQdd
|
|
|
|
|
unTWXraKA4KCuFKcWYqgVbE4TKJWNyqC2oHKoDBeEBF04UpFUVQqUoemSVOTJr2lrb5+5xsTUy+j
|
|
|
|
|
gYdc3yfnnOQrAVBCsK2U4WFUvUE546OTcwk82WxWz+fzt4VCAS/B7kMQhB9uiVtQReFkMolUKuWQ
|
|
|
|
|
SCSgaRpkWeYSSZIgiqIjscMfSEAPZDIZWJbF94RpmtB1HYqicEE6nQa9xO/3/5OQoM57/qm2a3PG
|
|
|
|
|
tyzDtxzF/FYMe6c6F1DAMAzEYrFnLfGZ1A9devqC8o2wpmL8jwJhRcbw7ygGAxJYS7xvuxVVVXkl
|
|
|
|
|
kUjkUdAshgP+DRVfureXbPPcuoKe2b/QDKtIQpXQPOLx+KOgf0nGCCu9smHiu7u8IGuDBHRsS6gd
|
|
|
|
|
mgmJHEHfLwn9wSgqagc6Xvt8RC6X48MlCeEI2ibDIS8TVDYGBHfAO3ONowvTOacqSEBQNY6gpvOk
|
|
|
|
|
p3cxgq8/Q8ZxyISWsDAwfY32sSscnhk8SFAFBIWLBPQZq1sOvjX5LozOqTBaxSu0jF5iYVV+FnZT
|
|
|
|
|
JLB/pN0DDTv7WlHvtuQpLwrYxbv/DfIJt47gQfKZDShFN94TZs+afPW6BGUkecdytqGlX3YPTr7m
|
|
|
|
|
omspN0YAAAAASUVORK5CYII=";
|
|
|
|
|
$_IMAGES["cab"] = $_IMAGES["archive"];
|
|
|
|
|
$_IMAGES["cpp"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH/SURBVDjLjZPNaxNRFMWrf4cFwV13JVKX
|
|
|
|
|
Luta61apIChIV0rblUqhjYpRcUaNboxIqxFTQgVti4hQQTe1C7FFSUmnmvmM85XJzCSpx3efzmTS
|
|
|
|
|
RtqBw7yZ9+5v7rl3bg+AHhK7DjClmAZ20UGm/XFcApAKgsBqNptbrVYL3cT2IQjCnSQkCRig4Fqt
|
|
|
|
|
Bs/zYtm2DdM0oaoqh8iyDFEUY0gUvI8AdMD3fYRhyO8k13VhWRY0TeOAer0O+kg2m/0LIcDx9LdD
|
|
|
|
|
gxff5jJzKjJzCmbe6fi0anEABTiOA13Xd1jiNTlxfT01UVB/CfMG7r/WILxScaOo4FpeBrPEfUdW
|
|
|
|
|
DMPgmVQqlTbgtCjls4sGjl16PxuRny5oGH3yA7oZoPjR4BDbqeHlksLrUa1W24DJWRU3Wer9Qw/G
|
|
|
|
|
k+kVmA2lGuDKtMQzsVwfl6c3eE3IUgyYeCFjsqCgb3DqQhJwq/gTY7lyV61Jdhtw7qFUSjNA/8m8
|
|
|
|
|
kASkc5tYXnN4BvTs1kO23uAdIksx4OjI19Grzys4c7fkfCm5MO0QU483cf5eGcurNq8BWfD8kK11
|
|
|
|
|
HtwBoDYeGV4ZO5X57ow8knBWLGP49jqevVF5IKnRaOxQByD6kT6smFj6bHb0OoJsV1cAe/n7f3PQ
|
|
|
|
|
RVsx4B/kMCuQRxt7CWZnXT69CUAvQfYwzpFo9Hv/AD332dKni9XnAAAAAElFTkSuQmCC";
|
|
|
|
|
$_IMAGES["cs"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJOSURBVDjLjZPbaxNBFMarf4cFwb9AIgXB
|
|
|
|
|
R18Enyw+i1gs4g01kphSlPjQeAtNzNqGNLVpNCGhEvBS21Rr0ZIK6ovFiKbNbXNpdpNsstncUz9n
|
|
|
|
|
NiauErEDHwMz8/1mzjlz+gD0UZGxh0hFNPAf7SXa3fUpAKparVZoNpvbrVYLvUT2YbFYTEqIEjBA
|
|
|
|
|
zZIkoVwud1UsFiEIAjKZjAxJp9NgGKYL6Zh3UQA9UK1WUa/X5ZmqVCqhUCiA4zgZUKlUQC+xWq1t
|
|
|
|
|
CAUM3v6+74hu2cH4eUz6OcwFcvgYEmUANYiiiFF3Aq5XHIJRCeqHLOJbFcg5OW6Mqm495fL2NznY
|
|
|
|
|
l7OwveYxsZSF6QUHEpIc9+eQgOvuFL6EMjC6wrg4GZZfIwOGbazX8TaPY/qAr5Ms72oOBt8WknwV
|
|
|
|
|
em8KWmcCY0/S0E1HcXYyhjNMBAYH2waYF8izl3I4eGLqmjLjz9by+PRNxCMS0k0C0c+yMDjj0Mwm
|
|
|
|
|
MOGJ4+Vqtg0Yn+dwf5HH/sG75/4uWzAiwbfCQ+dMYSGQxdhMHMPmMFY+8MgX623AiDu9+YAADg35
|
|
|
|
|
LErzHU8SGkcSI4+T0DoSuGRnoZ5mcdIUwdC9zd85OHpjQzP+nMOVmZj4NSZBKNVh9LbN6xslnGai
|
|
|
|
|
8CxmMP+Ol81criwntgugZTysDmovTEXEUVcKV8lt520s5kjJvP4MTpkjyApVXCZmvTWKRqMh6w9A
|
|
|
|
|
5yO9Xy9ijUgZCi1lL/UEkMUf/+qDHtruAn5BDpAvXKYbOzGTsyW5exWAfgrZQTt3RFu//yfHVsX/
|
|
|
|
|
fi5tjwAAAABJRU5ErkJggg==";
|
|
|
|
|
$_IMAGES["css"] = $_IMAGES["code"];
|
|
|
|
|
$_IMAGES["doc"] = $_IMAGES["textdocument"];
|
|
|
|
|
$_IMAGES["docx"] = $_IMAGES["textdocument"];
|
|
|
|
|
$_IMAGES["exe"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEkSURBVCjPbdE9S0IBGIbhxxobWxP8D8r5
|
|
|
|
|
I60RLg0NNTS21VBRQwg1aA4VOAWBpBVCFhKUtkVJtPQx9GFFWh49x3P0bvAjjsWzXrzvcAtpREEZ
|
|
|
|
|
fQtoACEkpKBVdpouv7NYi3SJkAynWcXExKTCJ6+4PLPeIZJPhksdmzp1vilTwqVGlWhEgR6wsbGp
|
|
|
|
|
U+OLt94rGfJ1gIOLi4OFSYV3Sjx5QXdtkiHFx//gjiwlTshyT5LV3T8gwy3HFLnhkCuWmB3qA0Uu
|
|
|
|
|
2WGOZVIUmN/ru5CiwAsLNLCI8cg+i3hAggMeiNOgwQbXRJnwghoX5DkiTow0OcLJ8HAbtLpkkzwJ
|
|
|
|
|
CuTY4pQppgeFFLJNtxMrzSRFtlnhvDXO6Fk7ll8hb+wZxpChoPzoB6aiXIYcSLDWAAAAAElFTkSu
|
|
|
|
|
QmCC";
|
|
|
|
|
$_IMAGES["gz"] = $_IMAGES["archive"];
|
|
|
|
|
$_IMAGES["gif"] = $_IMAGES["image"];
|
|
|
|
|
$_IMAGES["h"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHtSURBVDjLjZNLS9xQFMe138C9A/0OynyB
|
|
|
|
|
UjeFQjduROi2MMtCEalS0ToLEdQMdEShoKDWRymKigWxII7PhaB9aBFUJjHJpHlnnvbfe27NJcVI
|
|
|
|
|
DfwIyT3nd885cOoA1BHsaWQ0MZL/4SHjgciLCJpKpZJVrVava7Ua4mDnkCRpKCqJCpKU7HkefN8X
|
|
|
|
|
2LYN0zShqiqXKIqCTCYjJGFyPQkooFgsolwu8zfhui4sy4KmaVwQBAHokmw2+1cSClpSUmr12MP7
|
|
|
|
|
LQunii8klOA4DnRdv9USn0koePRiJDW+aTGBjcOLgAewlnjfYSuFQoFXIsvybQF9jG2avIKFPQtz
|
|
|
|
|
OyZmcyZMtywkVAnNwzCMeMG7jV+YyFmQ1g30L2kYWitAWtZFJdQOzYREsYLhzwZGGF+OHez/9PD2
|
|
|
|
|
k4aeeYUHVyoVPheSELGCwRUdA+zG/VMPeycu3iyo6J5WxDxIQFA1QtCauUwPrOpIPh/vSC+qSC/q
|
|
|
|
|
PHn3u4uu2Su8nsrzZKqAoOR/BO2j+Q+DTPC0/2CdSu79qOLVlIyXk3l0zsjomJYxv6ELQYgQPOk7
|
|
|
|
|
a2jpOnmcaG57tvuD3fzNxc5XB9sEm0XuyMb5VcCriBI7A/bz9117EMO1ENxImtmAfDq4TzKLdfn2
|
|
|
|
|
RgQJktxjnUNo9RN/AFmTwlP7TY1uAAAAAElFTkSuQmCC";
|
|
|
|
|
$_IMAGES["htm"] = $_IMAGES["webpage"];
|
|
|
|
|
$_IMAGES["html"] = $_IMAGES["webpage"];
|
|
|
|
|
$_IMAGES["iso"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIsSURBVDjLjZNfa9NQGIdnP4cDv8Nkn8PL
|
|
|
|
|
6UfwSgQZOoSBYkUvZLN1lMFArQyHrsIuWkE3ug2t1K3O0LXrZotdlzZp0qZp/qc9P8852qyyigs8
|
|
|
|
|
F8nJ7znveZN3DMAYg14XKROUyf9wiRIKckOCCcdxNN/3+71eD6Og64hEInPDkmHBJAsbhgHTNAM6
|
|
|
|
|
nQ7a7TYkSeKSer2OaDQaSAbhC7efJGY28gZWPrUQTyt4l2lCKLfR7XahaRpkWeYCy7LANonFYr8l
|
|
|
|
|
qzt26PUXIxzf7pCfioeS5EI2fVQkG+GVH0hlRVqFjmazeeZIvCc0PBXf1ohu96GZBEnBQMMmcAjg
|
|
|
|
|
eH3cWRKQyTf4URRF4ZWIongqoOFURXZpUEOt1YNm+BzDI6AeFKo6IqsF3g9d13k/VFU9FSytK9V8
|
|
|
|
|
zUJiR0WbBh+/2cVich+trodvNQeFEwvTsa/8C7Dzs54wUSBYeN+ofq+ageDZmoBX64dQdRcbByaE
|
|
|
|
|
qoGbTzPwPA+u63IJIxDMrR2nDkUTR6oPxSJ8ZxYuNlxsHtnYLal48DIH+om5gMGqCQSP3lam7i+X
|
|
|
|
|
SMfp40AFsjWCrbKHdMlGpeng2uxHpHM1XgGDhf8S3Fsuhe4+3w9PL+6RvbKGguhAODaRLSq4OvsB
|
|
|
|
|
L5JFvutAMCAQDH6kK9fnZyKJAm4tZHFj/jMexnPYzJ3w0kdxRsBu6EPyrzkYQT8Q/JFcpqWabOE8
|
|
|
|
|
Yfpul0/vkGCcSc4xzgPY6I//AmC87eKq4rrzAAAAAElFTkSuQmCC";
|
|
|
|
|
$_IMAGES["java"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIRSURBVDjLjZPJa1NRFIera/8ECy7dV7tx
|
|
|
|
|
kb2UOoDgzo0R3YuLrFwWIVglWQRtN0GCLkIixJDJQJKGQOYBA4akmec5eSFT/XnPsXlNsWIffOTd
|
|
|
|
|
d3O+e+6PezcAbBDiuS7YEmz/hxuCq3LdmmBrOp32F4vFyXK5xEWIeWg0mnfrknXBNhWPx2NIkiQz
|
|
|
|
|
GAzQ6/XQaDRYUqvVoNVqZQkXGwyGm2q1+k00GkUkEkE4HEYwGGQCgQDS6TSKxSILJpMJaBGdTvdH
|
|
|
|
|
YjKZHvp8vuNsNot6vc7QavRLq1UqFcTjcbhcLrmLFZyJ2+0u9Pt9hC1f8OHpDt4/uoO3928zmscK
|
|
|
|
|
HD5/gKPPB8jn8yxpNpuoVqtnAqPRiOFwiPGgB/fhPr7uvcJH5S4Ont3Dp5dP8G3/NX4cfedCi8XC
|
|
|
|
|
eXQ6nTOBzWaT5vM5J0yTFFy325WhtmkbhN1ux2g04gVlgcfj+UmDUqkEh8OBcrnM7xRaLpdDIpHg
|
|
|
|
|
cSqVYihEYr0DL61O6fv9fhQKBd4vhUrpk6DdbsNsNrN8Nptxt7JApVK9EMW9TCbDEgqI2qUOSELv
|
|
|
|
|
JPF6vbw9Kj4nEM81pVJ5V6/XH8diMQ6IaLVaLAmFQnA6nfyNslohC05P4RWFQrFLHVitVoYSF2cE
|
|
|
|
|
yWSSgxOn9Bx/CWggPv761z24gBNZcCq5JQKSaOIyxeK/I769a4JNklziOq+gq7/5Gx172kZga+XW
|
|
|
|
|
AAAAAElFTkSuQmCC";
|
|
|
|
|
$_IMAGES["jpg"] = $_IMAGES["image"];
|
|
|
|
|
$_IMAGES["jpeg"] = $_IMAGES["image"];
|
|
|
|
|
$_IMAGES["js"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHdSURBVDjLjZNPaxNBGIdrLwURLznWgkcv
|
|
|
|
|
IrQhRw9FGgy01IY0TVsQ0q6GFkT0kwjJId9AP4AHP4Q9FO2hJ7El2+yf7OzMbja7Sf0578QdNybF
|
|
|
|
|
LjwszLu/Z2femZkDMEfI54FkRVL4Dw8l8zqXEawMBgM2HA6vR6MRZiHraDabH7KSrKBA4SAIEIah
|
|
|
|
|
xvd9eJ6HbrerJKZpotVqaUkavkMC+iCKIsRxrN6EEAKMMViWpQT9fh/0k3a7PZZkBUPmqXAKCSjA
|
|
|
|
|
OYdt21NLUj1JBYW7C6vi6BC8vKWKQXUXQcNA5Nh6KY7jqJl0Op1JwY/Hi7mLp/lT/uoA/OX2WLC3
|
|
|
|
|
C9FoQBwfILKulIRmQv1wXfevwHmyuMPXS5Fv1MHrFSTmhSomnUvw/Spo3C+vg3/+pJZDPSGRFvil
|
|
|
|
|
NV+8PUZvoziKvn+d3LZvJ/BelMDevIZXK2EQCiUhtMDM53bY5rOIGXtwjU3EVz/HM5Az8eplqPFK
|
|
|
|
|
EfzLR91cOg8TPTgr3MudFx+d9owK7KMNVfQOtyQ1OO9qiHsWkiRRUHhKQLuwfH9+1XpfhVVfU0V3
|
|
|
|
|
//k4zFwdzjIlSA/Sv8jTOZObBL9uugczuNaCP5K8bFBIhduE5bdC3d6MYIkkt7jOKXT1l34DkIu9
|
|
|
|
|
e0agZjoAAAAASUVORK5CYII=";
|
|
|
|
|
$_IMAGES["mov"] = $_IMAGES["video"];
|
|
|
|
|
$_IMAGES["mp2"] = $_IMAGES["audio"];
|
|
|
|
|
$_IMAGES["mp3"] = $_IMAGES["audio"];
|
|
|
|
|
$_IMAGES["mp4"] = $_IMAGES["video"];
|
|
|
|
|
$_IMAGES["mp4a"] = $_IMAGES["audio"];
|
|
|
|
|
$_IMAGES["ogg"] = $_IMAGES["audio"];
|
|
|
|
|
$_IMAGES["flac"] = $_IMAGES["audio"];
|
|
|
|
|
$_IMAGES["mpeg"] = $_IMAGES["video"];
|
|
|
|
|
$_IMAGES["mpg"] = $_IMAGES["video"];
|
|
|
|
|
$_IMAGES["odg"] = $_IMAGES["vectorgraphics"];
|
|
|
|
|
$_IMAGES["odp"] = $_IMAGES["presentation"];
|
|
|
|
|
$_IMAGES["ods"] = $_IMAGES["spreadsheet"];
|
|
|
|
|
$_IMAGES["odt"] = $_IMAGES["textdocument"];
|
|
|
|
|
$_IMAGES["pdf"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHhSURBVDjLjZPLSxtRFIfVZRdWi0oFBf+B
|
|
|
|
|
rhRx5dKVYKG4tLhRqlgXPmIVJQiC60JCCZYqFHQh7rrQlUK7aVUUfCBRG5RkJpNkkswrM5NEf73n
|
|
|
|
|
6gxpHujAB/fOvefjnHM5VQCqCPa1MNoZnU/Qxqhx4woE7ZZlpXO53F0+n0c52Dl8Pt/nQkmhoJOC
|
|
|
|
|
dUWBsvQJ2u4ODMOAwvapVAqSJHGJKIrw+/2uxAmuJgFdMDUVincSxvEBTNOEpmlIp9OIxWJckMlk
|
|
|
|
|
oOs6AoHAg6RYYNs2kp4RqOvfuIACVFVFPB4vKYn3pFjAykDSOwVta52vqW6nlEQiwTMRBKGygIh9
|
|
|
|
|
GEDCMwZH6EgoE+qHLMuVBdbfKwjv3yE6Ogjz/PQ/CZVDPSFRRYE4/RHy1y8wry8RGWGSqyC/nM1m
|
|
|
|
|
eX9IQpQV2JKIUH8vrEgYmeAFwuPDCHa9QehtD26HBhCZnYC8ucGzKSsIL8wgsjiH1PYPxL+vQvm5
|
|
|
|
|
B/3sBMLyIm7GhhCe90BaWykV/Gp+VR9oqPVe9vfBTsruM1HtBKVPmFIUNusBrV3B4ev6bsbyXlPd
|
|
|
|
|
kbr/u+StHUkxruBPY+0KY8f38oWX/byvNAdluHNLeOxDB+uyQQfPCWZ3NT69BYJWkjxjnB1o9Fv/
|
|
|
|
|
ASQ5s+ABz8i2AAAAAElFTkSuQmCC";
|
|
|
|
|
$_IMAGES["php"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGsSURBVDjLjZNLSwJRFICtFv2AgggS2vQL
|
|
|
|
|
DFvVpn0Pi4iItm1KItvWJqW1pYsRemyyNILARbZpm0WtrJ0kbmbUlHmr4+t0z60Z7oSSAx935txz
|
|
|
|
|
vrlPBwA4EPKMEVwE9z+ME/qtOkbgqtVqUqPRaDWbTegE6YdQKBRkJazAjcWapoGu6xayLIMoilAo
|
|
|
|
|
FKhEEAQIh8OWxCzuQwEmVKtVMAyDtoiqqiBJEhSLRSqoVCqAP+E47keCAvfU5sDQ8MRs/OYNtr1x
|
|
|
|
|
2PXdwuJShLLljcFlNAW5HA9khLYp0TUhSYMLHm7PLEDS7zyw3ybRqyfg+TyBtwl2sDP1nKWFiUSa
|
|
|
|
|
zFex3tk45sXjL1Aul20CGTs+syVY37igBbwg03eMsfH9gwSsrZ+Doig2QZsdNiZmMkVrKmwc18az
|
|
|
|
|
HKELyQrOMEHTDJp8HXu1hostG8dY8PiRngdWMEq467ZwbDxwlIR8XrQLcBvn5k9Gpmd8fn/gHlZW
|
|
|
|
|
T20C/D4k8eTDB3yVFKjX6xSbgD1If8G970Q3QbvbPehAyxL8SibJEdaxo5dikqvS28sInCjp4Tqb
|
|
|
|
|
4NV3fgPirZ4pD4KS4wAAAABJRU5ErkJggg==";
|
|
|
|
|
$_IMAGES["png"] = $_IMAGES["image"];
|
|
|
|
|
$_IMAGES["pps"] = $_IMAGES["presentation"];
|
|
|
|
|
$_IMAGES["ppsx"] = $_IMAGES["presentation"];
|
|
|
|
|
$_IMAGES["ppt"] = $_IMAGES["presentation"];
|
|
|
|
|
$_IMAGES["pptx"] = $_IMAGES["presentation"];
|
|
|
|
|
$_IMAGES["psd"] = $_IMAGES["graphics"];
|
|
|
|
|
$_IMAGES["rar"] = $_IMAGES["archive"];
|
|
|
|
|
$_IMAGES["rb"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIESURBVDjLjZNPTxNBGIexid9CEr8DBr8C
|
|
|
|
|
HEiMVoomJiQkxBIM3dgIiaIESJTGGpVtyXIzHhoM4SIe9KAnEi4clQtJEczWFrbdP93d7s7u/JwZ
|
|
|
|
|
7XYJBdnkyRxmfs/MvO9OD4AeDvuuMPoY/f/hKiMR5WKCvlarpRNCwiAI0A02D1mW38QlcUE/Dzeb
|
|
|
|
|
Tdi2HWEYBhqNBqrVqpBUKhUUCoVI0g5f4gK+wHVdeJ4nRo5lWdB1HbVaTQgcxwHfRFGUvxIuCKYf
|
|
|
|
|
zmqZyZ2wKIO8fQ3/1Uv4Sy/QWliAO/sU9qMZmFMS3HfvT1xJ1ITOZJ9RpQi6+RH0y2fQb19BP23C
|
|
|
|
|
VhRo+TysXA71+XkcMIk6fAfHK6tQVfWEoESXngNra0C5DHZJYGMDZiaD35IEi41qOo3vc3MoJ1Oo
|
|
|
|
|
j92HpmkdQZiVEsHUAzl88hjY3gYIAdbXYQ0MoDo4CH1kBHssvH8jCf3eGKzDXzBNsyNoF/HH7WSJ
|
|
|
|
|
ZLPA7i6wtQVnaAhmKoXjxUX8vDkMY3Qcnm6IInJOCS4nEte9QhF+RhInIRMTcFhYvZWCcXcUPmsl
|
|
|
|
|
7w6H/w+nBFEb5SLc8TTo8jLq7M4m25mHfd8X8PC5AtHrXB5NdmwRrnfCcc4VCEnpA8jREasp6cpZ
|
|
|
|
|
AnrWO+hCGAn+Sa6xAtl84iJhttYSrzcm6OWSCzznNvzp9/4BgwKvG3Zq1eoAAAAASUVORK5CYII=";
|
|
|
|
|
$_IMAGES["sln"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJQSURBVDjLjZNvSBNxGMeX9O+FOAkaLbeh
|
|
|
|
|
ozdGRGiMQqTIlEqJMIig3oxl0YxcgYt6FUZRryLYwpFWCr2wXgjBIMJMYhFjgZSiEXOg5c5N593u
|
|
|
|
|
dne7u+2+3V3tT22SBx/uxe/5fu7uuefRAdCpKJdJoVHB9h9qFSryuSJBYzqdpiRJymYyGZRDOYfH
|
|
|
|
|
43lULCkW2NRwKpUCy7J5kskkSJJELBbTJARBwOv15iW58AZVoBbwPA9BELS7CsMwoCgK8XhcE3Ac
|
|
|
|
|
B/UhPp/vtyQnGBi03pYXjyAbPQuRD2sSbmUFVN9NLJ5ux9DryZJP0nqiChzjl48Oh9oYRPTAXBVk
|
|
|
|
|
sgnS0hRWu7uxXG/EfL0ZZ9yjGHgb1t4kGo0WBO6AvcUVsFP9oTZZjlQCP7ZA/r4JpHM3lup2Im6p
|
|
|
|
|
RsRai2PX/GjoDWEk8BWJRKIg6P147mfP+CW63d16RUyOQP5SA6rLAsKyA0TNNizvM4D9/A4Tk2Ec
|
|
|
|
|
7nuPE0+vgqbpgqBnzLl6vv8N3+x4eEsS0mAvHAJhMoAw6kHUVUF4rkeWHAKXZtA15kDL6C6tkXmB
|
|
|
|
|
ffiZs/P+NE7dC4pBhwsJY6USVjBtBO/bCswrbfq2GS+Ce9DwyooHoRvaPPzVxI67IVfHnQA+2JqQ
|
|
|
|
|
MFQgur0anP8J5IVmYEopmdbh5YQO1wMu0BxdKlB/44GLg48/HT8J8uBesH6/ViDxC5DnWiHPWjAz
|
|
|
|
|
0wleYCGKokaJIDdI/6JMZ1nWEshr7UEZsnnBH8l+ZfpY9WA9YaWW0ba3SGBWJetY5xzq6pt/AY6/
|
|
|
|
|
mKmzshF5AAAAAElFTkSuQmCC";
|
|
|
|
|
$_IMAGES["sql"] = $_IMAGES["database"];
|
|
|
|
|
$_IMAGES["tar"] = $_IMAGES["archive"];
|
|
|
|
|
$_IMAGES["tgz"] = $_IMAGES["archive"];
|
|
|
|
|
$_IMAGES["txt"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
|
|
|
|
|
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADoSURBVBgZBcExblNBGAbA2ceegTRBuIKO
|
|
|
|
|
giihSZNTcC5LUHAihNJR0kGKCDcYJY6D3/77MdOinTvzAgCw8ysThIvn/VojIyMjIyPP+bS1sUQI
|
|
|
|
|
V2s95pBDDvmbP/mdkft83tpYguZq5Jh/OeaYh+yzy8hTHvNlaxNNczm+la9OTlar1UdA/+C2A4tr
|
|
|
|
|
RCnD3jS8BB1obq2Gk6GU6QbQAS4BUaYSQAf4bhhKKTFdAzrAOwAxEUAH+KEM01SY3gM6wBsEAQB0
|
|
|
|
|
gJ+maZoC3gI6iPYaAIBJsiRmHU0AALOeFC3aK2cWAACUXe7+AwO0lc9eTHYTAAAAAElFTkSuQmCC";
|
|
|
|
|
$_IMAGES["wav"] = $_IMAGES["audio"];
|
|
|
|
|
$_IMAGES["wma"] = $_IMAGES["audio"];
|
|
|
|
|
$_IMAGES["wmv"] = $_IMAGES["video"];
|
|
|
|
|
$_IMAGES["xcf"] = $_IMAGES["graphics"];
|
|
|
|
|
$_IMAGES["xls"] = $_IMAGES["spreadsheet"];
|
|
|
|
|
$_IMAGES["xlsx"] = $_IMAGES["spreadsheet"];
|
|
|
|
|
$_IMAGES["xml"] = $_IMAGES["code"];
|
|
|
|
|
$_IMAGES["zip"] = $_IMAGES["archive"];
|
|
|
|
|
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
/* HERE COMES THE CODE. */
|
|
|
|
|
/* DON'T CHANGE UNLESS YOU KNOW WHAT YOU ARE DOING ;) */
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// The class that displays images (icons and thumbnails)
|
|
|
|
|
//
|
|
|
|
|
class ImageServer
|
|
|
|
|
{
|
|
|
|
|
//
|
|
|
|
|
// Checks if an image is requested and displays one if needed
|
|
|
|
|
//
|
|
|
|
|
public static function showImage()
|
|
|
|
|
{
|
|
|
|
|
global $_IMAGES;
|
|
|
|
|
if(isset($_GET['img']))
|
|
|
|
|
{
|
|
|
|
|
$mtime = gmdate('r', filemtime($_SERVER['SCRIPT_FILENAME']));
|
|
|
|
|
$etag = md5($mtime.$_SERVER['SCRIPT_FILENAME']);
|
|
|
|
|
|
|
|
|
|
if ((isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && $_SERVER['HTTP_IF_MODIFIED_SINCE'] == $mtime)
|
|
|
|
|
|| (isset($_SERVER['HTTP_IF_NONE_MATCH']) && str_replace('"', '', stripslashes($_SERVER['HTTP_IF_NONE_MATCH'])) == $etag))
|
|
|
|
|
{
|
|
|
|
|
header('HTTP/1.1 304 Not Modified');
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
header('ETag: "'.$etag.'"');
|
|
|
|
|
header('Last-Modified: '.$mtime);
|
|
|
|
|
header('Content-type: image/gif');
|
|
|
|
|
if(strlen($_GET['img']) > 0 && isset($_IMAGES[$_GET['img']]))
|
|
|
|
|
print base64_decode($_IMAGES[$_GET['img']]);
|
|
|
|
|
else
|
|
|
|
|
print base64_decode($_IMAGES["unknown"]);
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
else if(isset($_GET['thumb']))
|
|
|
|
|
{
|
|
|
|
|
if(strlen($_GET['thumb']) > 0 && EncodeExplorer::getConfig('thumbnails') == true)
|
|
|
|
|
{
|
|
|
|
|
ImageServer::showThumbnail($_GET['thumb']);
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function isEnabledPdf()
|
|
|
|
|
{
|
|
|
|
|
if(class_exists("Imagick"))
|
|
|
|
|
return true;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function openPdf($file)
|
|
|
|
|
{
|
|
|
|
|
if(!ImageServer::isEnabledPdf())
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
$im = new Imagick($file.'[0]');
|
|
|
|
|
$im->setImageFormat( "png" );
|
|
|
|
|
$str = $im->getImageBlob();
|
|
|
|
|
$im2 = imagecreatefromstring($str);
|
|
|
|
|
return $im2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Creates and returns a thumbnail image object from an image file
|
|
|
|
|
//
|
|
|
|
|
public static function createThumbnail($file)
|
|
|
|
|
{
|
|
|
|
|
if(is_int(EncodeExplorer::getConfig('thumbnails_width')))
|
|
|
|
|
$max_width = EncodeExplorer::getConfig('thumbnails_width');
|
|
|
|
|
else
|
|
|
|
|
$max_width = 200;
|
|
|
|
|
|
|
|
|
|
if(is_int(EncodeExplorer::getConfig('thumbnails_height')))
|
|
|
|
|
$max_height = EncodeExplorer::getConfig('thumbnails_height');
|
|
|
|
|
else
|
|
|
|
|
$max_height = 200;
|
|
|
|
|
|
|
|
|
|
if(File::isPdfFile($file))
|
|
|
|
|
$image = ImageServer::openPdf($file);
|
|
|
|
|
else
|
|
|
|
|
$image = ImageServer::openImage($file);
|
|
|
|
|
if($image == null)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
imagealphablending($image, true);
|
|
|
|
|
imagesavealpha($image, true);
|
|
|
|
|
|
|
|
|
|
$width = imagesx($image);
|
|
|
|
|
$height = imagesy($image);
|
|
|
|
|
|
|
|
|
|
$new_width = $max_width;
|
|
|
|
|
$new_height = $max_height;
|
|
|
|
|
if(($width/$height) > ($new_width/$new_height))
|
|
|
|
|
$new_height = $new_width * ($height / $width);
|
|
|
|
|
else
|
|
|
|
|
$new_width = $new_height * ($width / $height);
|
|
|
|
|
|
|
|
|
|
if($new_width >= $width && $new_height >= $height)
|
|
|
|
|
{
|
|
|
|
|
$new_width = $width;
|
|
|
|
|
$new_height = $height;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$new_image = ImageCreateTrueColor($new_width, $new_height);
|
|
|
|
|
imagealphablending($new_image, true);
|
|
|
|
|
imagesavealpha($new_image, true);
|
|
|
|
|
$trans_colour = imagecolorallocatealpha($new_image, 0, 0, 0, 127);
|
|
|
|
|
imagefill($new_image, 0, 0, $trans_colour);
|
|
|
|
|
|
|
|
|
|
imagecopyResampled ($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
|
|
|
|
|
|
|
|
|
|
return $new_image;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Function for displaying the thumbnail.
|
|
|
|
|
// Includes attempts at cacheing it so that generation is minimised.
|
|
|
|
|
//
|
|
|
|
|
public static function showThumbnail($file)
|
|
|
|
|
{
|
|
|
|
|
if(filemtime($file) < filemtime($_SERVER['SCRIPT_FILENAME']))
|
|
|
|
|
$mtime = gmdate('r', filemtime($_SERVER['SCRIPT_FILENAME']));
|
|
|
|
|
else
|
|
|
|
|
$mtime = gmdate('r', filemtime($file));
|
|
|
|
|
|
|
|
|
|
$etag = md5($mtime.$file);
|
|
|
|
|
|
|
|
|
|
if ((isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && $_SERVER['HTTP_IF_MODIFIED_SINCE'] == $mtime)
|
|
|
|
|
|| (isset($_SERVER['HTTP_IF_NONE_MATCH']) && str_replace('"', '', stripslashes($_SERVER['HTTP_IF_NONE_MATCH'])) == $etag))
|
|
|
|
|
{
|
|
|
|
|
header('HTTP/1.1 304 Not Modified');
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
header('ETag: "'.$etag.'"');
|
|
|
|
|
header('Last-Modified: '.$mtime);
|
|
|
|
|
header('Content-Type: image/png');
|
|
|
|
|
$image = ImageServer::createThumbnail($file);
|
|
|
|
|
imagepng($image);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// A helping function for opening different types of image files
|
|
|
|
|
//
|
|
|
|
|
public static function openImage ($file)
|
|
|
|
|
{
|
|
|
|
|
$size = getimagesize($file);
|
|
|
|
|
switch($size["mime"])
|
|
|
|
|
{
|
|
|
|
|
case "image/jpeg":
|
|
|
|
|
$im = imagecreatefromjpeg($file);
|
|
|
|
|
break;
|
|
|
|
|
case "image/gif":
|
|
|
|
|
$im = imagecreatefromgif($file);
|
|
|
|
|
break;
|
|
|
|
|
case "image/png":
|
|
|
|
|
$im = imagecreatefrompng($file);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
$im=null;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
return $im;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// The class for logging user activity
|
|
|
|
|
//
|
|
|
|
|
class Logger
|
|
|
|
|
{
|
|
|
|
|
public static function log($message)
|
|
|
|
|
{
|
|
|
|
|
global $encodeExplorer;
|
|
|
|
|
if(strlen(EncodeExplorer::getConfig('log_file')) > 0)
|
|
|
|
|
{
|
|
|
|
|
if(Location::isFileWritable(EncodeExplorer::getConfig('log_file')))
|
|
|
|
|
{
|
|
|
|
|
$message = "[" . date("Y-m-d h:i:s", mktime()) . "] ".$message." (".$_SERVER["HTTP_USER_AGENT"].")\n";
|
|
|
|
|
error_log($message, 3, EncodeExplorer::getConfig('log_file'));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
$encodeExplorer->setErrorString("log_file_permission_error");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function logAccess($path, $isDir)
|
|
|
|
|
{
|
|
|
|
|
$message = $_SERVER['REMOTE_ADDR']." ".GateKeeper::getUserName()." accessed ";
|
|
|
|
|
$message .= $isDir?"dir":"file";
|
|
|
|
|
$message .= " ".$path;
|
|
|
|
|
Logger::log($message);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function logQuery()
|
|
|
|
|
{
|
|
|
|
|
if(isset($_POST['log']) && strlen($_POST['log']) > 0)
|
|
|
|
|
{
|
|
|
|
|
Logger::logAccess($_POST['log'], false);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function logCreation($path, $isDir)
|
|
|
|
|
{
|
|
|
|
|
$message = $_SERVER['REMOTE_ADDR']." ".GateKeeper::getUserName()." created ";
|
|
|
|
|
$message .= $isDir?"dir":"file";
|
|
|
|
|
$message .= " ".$path;
|
|
|
|
|
Logger::log($message);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function emailNotification($path, $isFile)
|
|
|
|
|
{
|
|
|
|
|
if(strlen(EncodeExplorer::getConfig('upload_email')) > 0)
|
|
|
|
|
{
|
|
|
|
|
$message = "This is a message to let you know that ".GateKeeper::getUserName()." ";
|
|
|
|
|
$message .= ($isFile?"uploaded a new file":"created a new directory")." in Encode Explorer.\n\n";
|
|
|
|
|
$message .= "Path : ".$path."\n";
|
|
|
|
|
$message .= "IP : ".$_SERVER['REMOTE_ADDR']."\n";
|
|
|
|
|
mail(EncodeExplorer::getConfig('upload_email'), "Upload notification", $message);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// The class controls logging in and authentication
|
|
|
|
|
//
|
|
|
|
|
class GateKeeper
|
|
|
|
|
{
|
|
|
|
|
public static function init()
|
|
|
|
|
{
|
|
|
|
|
global $encodeExplorer;
|
|
|
|
|
if(strlen(EncodeExplorer::getConfig("session_name")) > 0)
|
|
|
|
|
session_name(EncodeExplorer::getConfig("session_name"));
|
|
|
|
|
|
|
|
|
|
if(count(EncodeExplorer::getConfig("users")) > 0)
|
|
|
|
|
session_start();
|
|
|
|
|
else
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
if(isset($_GET['logout']))
|
|
|
|
|
{
|
|
|
|
|
$_SESSION['ee_user_name'] = null;
|
|
|
|
|
$_SESSION['ee_user_pass'] = null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(isset($_POST['user_pass']) && strlen($_POST['user_pass']) > 0)
|
|
|
|
|
{
|
|
|
|
|
if(GateKeeper::isUser((isset($_POST['user_name'])?$_POST['user_name']:""), $_POST['user_pass']))
|
|
|
|
|
{
|
|
|
|
|
$_SESSION['ee_user_name'] = isset($_POST['user_name'])?$_POST['user_name']:"";
|
|
|
|
|
$_SESSION['ee_user_pass'] = $_POST['user_pass'];
|
|
|
|
|
|
|
|
|
|
$addr = $_SERVER['PHP_SELF'];
|
|
|
|
|
$param = '';
|
|
|
|
|
|
|
|
|
|
if(isset($_GET['m']))
|
|
|
|
|
$param .= (strlen($param) == 0 ? '?m' : '&m');
|
|
|
|
|
|
|
|
|
|
if(isset($_GET['s']))
|
|
|
|
|
$param .= (strlen($param) == 0 ? '?s' : '&s');
|
|
|
|
|
|
|
|
|
|
if(isset($_GET['dir']) && strlen($_GET['dir']) > 0)
|
|
|
|
|
{
|
|
|
|
|
$param .= (strlen($param) == 0 ? '?dir=' : '&dir=');
|
|
|
|
|
$param .= urlencode($_GET['dir']);
|
|
|
|
|
}
|
|
|
|
|
header( "Location: ".$addr.$param);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
$encodeExplorer->setErrorString("wrong_pass");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function isUser($userName, $userPass)
|
|
|
|
|
{
|
|
|
|
|
foreach(EncodeExplorer::getConfig("users") as $user)
|
|
|
|
|
{
|
|
|
|
|
if($user[1] == $userPass)
|
|
|
|
|
{
|
|
|
|
|
if(strlen($userName) == 0 || $userName == $user[0])
|
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function isLoginRequired()
|
|
|
|
|
{
|
|
|
|
|
if(EncodeExplorer::getConfig("require_login") == false){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function isUserLoggedIn()
|
|
|
|
|
{
|
|
|
|
|
if(isset($_SESSION['ee_user_name'], $_SESSION['ee_user_pass']))
|
|
|
|
|
{
|
|
|
|
|
if(GateKeeper::isUser($_SESSION['ee_user_name'], $_SESSION['ee_user_pass']))
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function isAccessAllowed()
|
|
|
|
|
{
|
|
|
|
|
if(!GateKeeper::isLoginRequired() || GateKeeper::isUserLoggedIn())
|
|
|
|
|
return true;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function isUploadAllowed(){
|
|
|
|
|
if(EncodeExplorer::getConfig("upload_enable") == true && GateKeeper::isUserLoggedIn() == true && GateKeeper::getUserStatus() == "admin")
|
|
|
|
|
return true;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function isNewdirAllowed(){
|
|
|
|
|
if(EncodeExplorer::getConfig("newdir_enable") == true && GateKeeper::isUserLoggedIn() == true && GateKeeper::getUserStatus() == "admin")
|
|
|
|
|
return true;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function isDeleteAllowed(){
|
|
|
|
|
if(EncodeExplorer::getConfig("delete_enable") == true && GateKeeper::isUserLoggedIn() == true && GateKeeper::getUserStatus() == "admin")
|
|
|
|
|
return true;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function getUserStatus(){
|
|
|
|
|
if(GateKeeper::isUserLoggedIn() == true && EncodeExplorer::getConfig("users") != null && is_array(EncodeExplorer::getConfig("users"))){
|
|
|
|
|
foreach(EncodeExplorer::getConfig("users") as $user){
|
|
|
|
|
if($user[0] != null && $user[0] == $_SESSION['ee_user_name'])
|
|
|
|
|
return $user[2];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function getUserName()
|
|
|
|
|
{
|
|
|
|
|
if(GateKeeper::isUserLoggedIn() == true && isset($_SESSION['ee_user_name']) && strlen($_SESSION['ee_user_name']) > 0)
|
|
|
|
|
return $_SESSION['ee_user_name'];
|
|
|
|
|
if(isset($_SERVER["REMOTE_USER"]) && strlen($_SERVER["REMOTE_USER"]) > 0)
|
|
|
|
|
return $_SERVER["REMOTE_USER"];
|
|
|
|
|
if(isset($_SERVER['PHP_AUTH_USER']) && strlen($_SERVER['PHP_AUTH_USER']) > 0)
|
|
|
|
|
return $_SERVER['PHP_AUTH_USER'];
|
|
|
|
|
return "an anonymous user";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function showLoginBox(){
|
|
|
|
|
if(!GateKeeper::isUserLoggedIn() && count(EncodeExplorer::getConfig("users")) > 0)
|
|
|
|
|
return true;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// The class for any kind of file managing (new folder, upload, etc).
|
|
|
|
|
//
|
|
|
|
|
class FileManager
|
|
|
|
|
{
|
|
|
|
|
/* Obsolete code
|
|
|
|
|
function checkPassword($inputPassword)
|
|
|
|
|
{
|
|
|
|
|
global $encodeExplorer;
|
|
|
|
|
if(strlen(EncodeExplorer::getConfig("upload_password")) > 0 && $inputPassword == EncodeExplorer::getConfig("upload_password"))
|
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
$encodeExplorer->setErrorString("wrong_password");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
*/
|
|
|
|
|
function newFolder($location, $dirname)
|
|
|
|
|
{
|
|
|
|
|
global $encodeExplorer;
|
|
|
|
|
if(strlen($dirname) > 0)
|
|
|
|
|
{
|
|
|
|
|
$forbidden = array(".", "/", "\\");
|
|
|
|
|
for($i = 0; $i < count($forbidden); $i++)
|
|
|
|
|
{
|
|
|
|
|
$dirname = str_replace($forbidden[$i], "", $dirname);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(!$location->uploadAllowed())
|
|
|
|
|
{
|
|
|
|
|
// The system configuration does not allow uploading here
|
|
|
|
|
$encodeExplorer->setErrorString("upload_not_allowed");
|
|
|
|
|
}
|
|
|
|
|
else if(!$location->isWritable())
|
|
|
|
|
{
|
|
|
|
|
// The target directory is not writable
|
|
|
|
|
$encodeExplorer->setErrorString("upload_dir_not_writable");
|
|
|
|
|
}
|
|
|
|
|
else if(!mkdir($location->getDir(true, false, false, 0).$dirname, EncodeExplorer::getConfig("new_dir_mode")))
|
|
|
|
|
{
|
|
|
|
|
// Error creating a new directory
|
|
|
|
|
$encodeExplorer->setErrorString("new_dir_failed");
|
|
|
|
|
}
|
|
|
|
|
else if(!chmod($location->getDir(true, false, false, 0).$dirname, EncodeExplorer::getConfig("new_dir_mode")))
|
|
|
|
|
{
|
|
|
|
|
// Error applying chmod
|
|
|
|
|
$encodeExplorer->setErrorString("chmod_dir_failed");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
// Directory successfully created, sending e-mail notification
|
|
|
|
|
Logger::logCreation($location->getDir(true, false, false, 0).$dirname, true);
|
|
|
|
|
Logger::emailNotification($location->getDir(true, false, false, 0).$dirname, false);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function uploadFile($location, $userfile)
|
|
|
|
|
{
|
|
|
|
|
global $encodeExplorer;
|
|
|
|
|
$name = basename($userfile['name']);
|
|
|
|
|
if(get_magic_quotes_gpc())
|
|
|
|
|
$name = stripslashes($name);
|
|
|
|
|
|
|
|
|
|
$upload_dir = $location->getFullPath();
|
|
|
|
|
$upload_file = $upload_dir . $name;
|
|
|
|
|
|
|
|
|
|
if(function_exists("finfo_open") && function_exists("finfo_file"))
|
|
|
|
|
$mime_type = File::getFileMime($userfile['tmp_name']);
|
|
|
|
|
else
|
|
|
|
|
$mime_type = $userfile['type'];
|
|
|
|
|
|
|
|
|
|
$extension = File::getFileExtension($userfile['name']);
|
|
|
|
|
|
|
|
|
|
if(!$location->uploadAllowed())
|
|
|
|
|
{
|
|
|
|
|
$encodeExplorer->setErrorString("upload_not_allowed");
|
|
|
|
|
}
|
|
|
|
|
else if(!$location->isWritable())
|
|
|
|
|
{
|
|
|
|
|
$encodeExplorer->setErrorString("upload_dir_not_writable");
|
|
|
|
|
}
|
|
|
|
|
else if(!is_uploaded_file($userfile['tmp_name']))
|
|
|
|
|
{
|
|
|
|
|
$encodeExplorer->setErrorString("failed_upload");
|
|
|
|
|
}
|
|
|
|
|
else if(is_array(EncodeExplorer::getConfig("upload_allow_type")) && count(EncodeExplorer::getConfig("upload_allow_type")) > 0 && !in_array($mime_type, EncodeExplorer::getConfig("upload_allow_type")))
|
|
|
|
|
{
|
|
|
|
|
$encodeExplorer->setErrorString("upload_type_not_allowed");
|
|
|
|
|
}
|
|
|
|
|
else if(is_array(EncodeExplorer::getConfig("upload_reject_extension")) && count(EncodeExplorer::getConfig("upload_reject_extension")) > 0 && in_array($extension, EncodeExplorer::getConfig("upload_reject_extension")))
|
|
|
|
|
{
|
|
|
|
|
$encodeExplorer->setErrorString("upload_type_not_allowed");
|
|
|
|
|
}
|
|
|
|
|
else if(!@move_uploaded_file($userfile['tmp_name'], $upload_file))
|
|
|
|
|
{
|
|
|
|
|
$encodeExplorer->setErrorString("failed_move");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
chmod($upload_file, EncodeExplorer::getConfig("upload_file_mode"));
|
|
|
|
|
Logger::logCreation($location->getDir(true, false, false, 0).$name, false);
|
|
|
|
|
Logger::emailNotification($location->getDir(true, false, false, 0).$name, true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function delete_dir($dir) {
|
|
|
|
|
if (is_dir($dir)) {
|
|
|
|
|
$objects = scandir($dir);
|
|
|
|
|
foreach ($objects as $object) {
|
|
|
|
|
if ($object != "." && $object != "..") {
|
|
|
|
|
if (filetype($dir."/".$object) == "dir")
|
|
|
|
|
FileManager::delete_dir($dir."/".$object);
|
|
|
|
|
else
|
|
|
|
|
unlink($dir."/".$object);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
reset($objects);
|
|
|
|
|
rmdir($dir);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function delete_file($file){
|
|
|
|
|
if(is_file($file)){
|
|
|
|
|
unlink($file);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// The main function, checks if the user wants to perform any supported operations
|
|
|
|
|
//
|
|
|
|
|
function run($location)
|
|
|
|
|
{
|
|
|
|
|
if(isset($_POST['userdir']) && strlen($_POST['userdir']) > 0){
|
|
|
|
|
if($location->uploadAllowed() && GateKeeper::isUserLoggedIn() && GateKeeper::isAccessAllowed() && GateKeeper::isNewdirAllowed()){
|
|
|
|
|
$this->newFolder($location, $_POST['userdir']);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(isset($_FILES['userfile']['name']) && strlen($_FILES['userfile']['name']) > 0){
|
|
|
|
|
if($location->uploadAllowed() && GateKeeper::isUserLoggedIn() && GateKeeper::isAccessAllowed() && GateKeeper::isUploadAllowed()){
|
|
|
|
|
$this->uploadFile($location, $_FILES['userfile']);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(isset($_GET['del'])){
|
|
|
|
|
if(GateKeeper::isUserLoggedIn() && GateKeeper::isAccessAllowed() && GateKeeper::isDeleteAllowed()){
|
|
|
|
|
$split_path = Location::splitPath($_GET['del']);
|
|
|
|
|
$path = "";
|
|
|
|
|
for($i = 0; $i < count($split_path); $i++){
|
|
|
|
|
$path .= $split_path[$i];
|
|
|
|
|
if($i + 1 < count($split_path))
|
|
|
|
|
$path .= "/";
|
|
|
|
|
}
|
|
|
|
|
if($path == "" || $path == "/" || $path == "\\" || $path == ".")
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
if(is_dir($path))
|
|
|
|
|
FileManager::delete_dir($path);
|
|
|
|
|
else if(is_file($path))
|
|
|
|
|
FileManager::delete_file($path);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Dir class holds the information about one directory in the list
|
|
|
|
|
//
|
|
|
|
|
class Dir
|
|
|
|
|
{
|
|
|
|
|
var $name;
|
|
|
|
|
var $location;
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Constructor
|
|
|
|
|
//
|
|
|
|
|
function Dir($name, $location)
|
|
|
|
|
{
|
|
|
|
|
$this->name = $name;
|
|
|
|
|
$this->location = $location;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getName()
|
|
|
|
|
{
|
|
|
|
|
return $this->name;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getNameHtml()
|
|
|
|
|
{
|
|
|
|
|
return htmlspecialchars($this->name);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getNameEncoded()
|
|
|
|
|
{
|
|
|
|
|
return rawurlencode($this->name);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Debugging output
|
|
|
|
|
//
|
|
|
|
|
function debug()
|
|
|
|
|
{
|
|
|
|
|
print("Dir name (htmlspecialchars): ".$this->getName()."\n");
|
|
|
|
|
print("Dir location: ".$this->location->getDir(true, false, false, 0)."\n");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// File class holds the information about one file in the list
|
|
|
|
|
//
|
|
|
|
|
class File
|
|
|
|
|
{
|
|
|
|
|
var $name;
|
|
|
|
|
var $location;
|
|
|
|
|
var $size;
|
|
|
|
|
//var $extension;
|
|
|
|
|
var $type;
|
|
|
|
|
var $modTime;
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Constructor
|
|
|
|
|
//
|
|
|
|
|
function File($name, $location)
|
|
|
|
|
{
|
|
|
|
|
$this->name = $name;
|
|
|
|
|
$this->location = $location;
|
|
|
|
|
|
|
|
|
|
$this->type = File::getFileType($this->location->getDir(true, false, false, 0).$this->getName());
|
|
|
|
|
$this->size = File::getFileSize($this->location->getDir(true, false, false, 0).$this->getName());
|
|
|
|
|
$this->modTime = filemtime($this->location->getDir(true, false, false, 0).$this->getName());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getName()
|
|
|
|
|
{
|
|
|
|
|
return $this->name;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getNameEncoded()
|
|
|
|
|
{
|
|
|
|
|
return rawurlencode($this->name);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getNameHtml()
|
|
|
|
|
{
|
|
|
|
|
return htmlspecialchars($this->name);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getSize()
|
|
|
|
|
{
|
|
|
|
|
return $this->size;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getType()
|
|
|
|
|
{
|
|
|
|
|
return $this->type;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getModTime()
|
|
|
|
|
{
|
|
|
|
|
return $this->modTime;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Determine the size of a file
|
|
|
|
|
//
|
|
|
|
|
public static function getFileSize($file)
|
|
|
|
|
{
|
|
|
|
|
$sizeInBytes = filesize($file);
|
|
|
|
|
|
|
|
|
|
// If filesize() fails (with larger files), try to get the size from unix command line.
|
|
|
|
|
if (EncodeExplorer::getConfig("large_files") == true || !$sizeInBytes || $sizeInBytes < 0) {
|
|
|
|
|
$sizeInBytes=exec("ls -l '$file' | awk '{print $5}'");
|
|
|
|
|
}
|
|
|
|
|
return $sizeInBytes;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function getFileType($filepath)
|
|
|
|
|
{
|
|
|
|
|
/*
|
|
|
|
|
* This extracts the information from the file contents.
|
|
|
|
|
* Unfortunately it doesn't properly detect the difference between text-based file types.
|
|
|
|
|
*
|
|
|
|
|
$mime_type = File::getMimeType($filepath);
|
|
|
|
|
$mime_type_chunks = explode("/", $mime_type, 2);
|
|
|
|
|
$type = $mime_type_chunks[1];
|
|
|
|
|
*/
|
|
|
|
|
return File::getFileExtension($filepath);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function getFileMime($filepath)
|
|
|
|
|
{
|
|
|
|
|
$fhandle = finfo_open(FILEINFO_MIME);
|
|
|
|
|
$mime_type = finfo_file($fhandle, $filepath);
|
|
|
|
|
$mime_type_chunks = preg_split('/\s+/', $mime_type);
|
|
|
|
|
$mime_type = $mime_type_chunks[0];
|
|
|
|
|
$mime_type_chunks = explode(";", $mime_type);
|
|
|
|
|
$mime_type = $mime_type_chunks[0];
|
|
|
|
|
return $mime_type;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function getFileExtension($filepath)
|
|
|
|
|
{
|
|
|
|
|
return strtolower(pathinfo($filepath, PATHINFO_EXTENSION));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Debugging output
|
|
|
|
|
//
|
|
|
|
|
function debug()
|
|
|
|
|
{
|
|
|
|
|
print("File name: ".$this->getName()."\n");
|
|
|
|
|
print("File location: ".$this->location->getDir(true, false, false, 0)."\n");
|
|
|
|
|
print("File size: ".$this->size."\n");
|
|
|
|
|
print("File modTime: ".$this->modTime."\n");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function isImage()
|
|
|
|
|
{
|
|
|
|
|
$type = $this->getType();
|
|
|
|
|
if($type == "png" || $type == "jpg" || $type == "gif" || $type == "jpeg")
|
|
|
|
|
return true;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function isPdf()
|
|
|
|
|
{
|
|
|
|
|
if(strtolower($this->getType()) == "pdf")
|
|
|
|
|
return true;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function isPdfFile($file)
|
|
|
|
|
{
|
|
|
|
|
if(File::getFileType($file) == "pdf")
|
|
|
|
|
return true;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function isValidForThumb()
|
|
|
|
|
{
|
|
|
|
|
if($this->isImage() || ($this->isPdf() && ImageServer::isEnabledPdf()))
|
|
|
|
|
return true;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class Location
|
|
|
|
|
{
|
|
|
|
|
var $path;
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Split a file path into array elements
|
|
|
|
|
//
|
|
|
|
|
public static function splitPath($dir)
|
|
|
|
|
{
|
|
|
|
|
$dir = stripslashes($dir);
|
|
|
|
|
$path1 = preg_split("/[\\\\\/]+/", $dir);
|
|
|
|
|
$path2 = array();
|
|
|
|
|
for($i = 0; $i < count($path1); $i++)
|
|
|
|
|
{
|
|
|
|
|
if($path1[$i] == ".." || $path1[$i] == "." || $path1[$i] == "")
|
|
|
|
|
continue;
|
|
|
|
|
$path2[] = $path1[$i];
|
|
|
|
|
}
|
|
|
|
|
return $path2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Get the current directory.
|
|
|
|
|
// Options: Include the prefix ("./"); URL-encode the string; HTML-encode the string; return directory n-levels up
|
|
|
|
|
//
|
|
|
|
|
function getDir($prefix, $encoded, $html, $up)
|
|
|
|
|
{
|
|
|
|
|
$dir = "";
|
|
|
|
|
if($prefix == true)
|
|
|
|
|
$dir .= "./";
|
|
|
|
|
for($i = 0; $i < ((count($this->path) >= $up && $up > 0)?count($this->path)-$up:count($this->path)); $i++)
|
|
|
|
|
{
|
|
|
|
|
$temp = $this->path[$i];
|
|
|
|
|
if($encoded)
|
|
|
|
|
$temp = rawurlencode($temp);
|
|
|
|
|
if($html)
|
|
|
|
|
$temp = htmlspecialchars($temp);
|
|
|
|
|
$dir .= $temp."/";
|
|
|
|
|
}
|
|
|
|
|
return $dir;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getPathLink($i, $html)
|
|
|
|
|
{
|
|
|
|
|
if($html)
|
|
|
|
|
return htmlspecialchars($this->path[$i]);
|
|
|
|
|
else
|
|
|
|
|
return $this->path[$i];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getFullPath()
|
|
|
|
|
{
|
|
|
|
|
return (strlen(EncodeExplorer::getConfig('basedir')) > 0?EncodeExplorer::getConfig('basedir'):dirname($_SERVER['SCRIPT_FILENAME']))."/".$this->getDir(true, false, false, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Debugging output
|
|
|
|
|
//
|
|
|
|
|
function debug()
|
|
|
|
|
{
|
|
|
|
|
print_r($this->path);
|
|
|
|
|
print("Dir with prefix: ".$this->getDir(true, false, false, 0)."\n");
|
|
|
|
|
print("Dir without prefix: ".$this->getDir(false, false, false, 0)."\n");
|
|
|
|
|
print("Upper dir with prefix: ".$this->getDir(true, false, false, 1)."\n");
|
|
|
|
|
print("Upper dir without prefix: ".$this->getDir(false, false, false, 1)."\n");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Set the current directory
|
|
|
|
|
//
|
|
|
|
|
function init()
|
|
|
|
|
{
|
|
|
|
|
if(!isset($_GET['dir']) || strlen($_GET['dir']) == 0)
|
|
|
|
|
{
|
|
|
|
|
$this->path = $this->splitPath(EncodeExplorer::getConfig('starting_dir'));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
$this->path = $this->splitPath($_GET['dir']);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Checks if the current directory is below the input path
|
|
|
|
|
//
|
|
|
|
|
function isSubDir($checkPath)
|
|
|
|
|
{
|
|
|
|
|
for($i = 0; $i < count($this->path); $i++)
|
|
|
|
|
{
|
|
|
|
|
if(strcmp($this->getDir(true, false, false, $i), $checkPath) == 0)
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Check if uploading is allowed into the current directory, based on the configuration
|
|
|
|
|
//
|
|
|
|
|
function uploadAllowed()
|
|
|
|
|
{
|
|
|
|
|
if(EncodeExplorer::getConfig('upload_enable') != true)
|
|
|
|
|
return false;
|
|
|
|
|
if(EncodeExplorer::getConfig('upload_dirs') == null || count(EncodeExplorer::getConfig('upload_dirs')) == 0)
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
|
|
$upload_dirs = EncodeExplorer::getConfig('upload_dirs');
|
|
|
|
|
for($i = 0; $i < count($upload_dirs); $i++)
|
|
|
|
|
{
|
|
|
|
|
if($this->isSubDir($upload_dirs[$i]))
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function isWritable()
|
|
|
|
|
{
|
|
|
|
|
return is_writable($this->getDir(true, false, false, 0));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function isDirWritable($dir)
|
|
|
|
|
{
|
|
|
|
|
return is_writable($dir);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function isFileWritable($file)
|
|
|
|
|
{
|
|
|
|
|
if(file_exists($file))
|
|
|
|
|
{
|
|
|
|
|
if(is_writable($file))
|
|
|
|
|
return true;
|
|
|
|
|
else
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
else if(Location::isDirWritable(dirname($file)))
|
|
|
|
|
return true;
|
|
|
|
|
else
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class EncodeExplorer
|
|
|
|
|
{
|
|
|
|
|
var $location;
|
|
|
|
|
var $dirs;
|
|
|
|
|
var $files;
|
|
|
|
|
var $sort_by;
|
|
|
|
|
var $sort_as;
|
|
|
|
|
var $mobile;
|
|
|
|
|
var $logging;
|
|
|
|
|
var $spaceUsed;
|
|
|
|
|
var $lang;
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Determine sorting, calculate space.
|
|
|
|
|
//
|
|
|
|
|
function init()
|
|
|
|
|
{
|
|
|
|
|
$this->sort_by = "";
|
|
|
|
|
$this->sort_as = "";
|
|
|
|
|
if(isset($_GET["sort_by"], $_GET["sort_as"]))
|
|
|
|
|
{
|
|
|
|
|
if($_GET["sort_by"] == "name" || $_GET["sort_by"] == "size" || $_GET["sort_by"] == "mod")
|
|
|
|
|
if($_GET["sort_as"] == "asc" || $_GET["sort_as"] == "desc")
|
|
|
|
|
{
|
|
|
|
|
$this->sort_by = $_GET["sort_by"];
|
|
|
|
|
$this->sort_as = $_GET["sort_as"];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(strlen($this->sort_by) <= 0 || strlen($this->sort_as) <= 0)
|
|
|
|
|
{
|
|
|
|
|
$this->sort_by = "name";
|
|
|
|
|
$this->sort_as = "desc";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
global $_TRANSLATIONS;
|
|
|
|
|
if(isset($_GET['lang'], $_TRANSLATIONS[$_GET['lang']]))
|
|
|
|
|
$this->lang = $_GET['lang'];
|
|
|
|
|
else
|
|
|
|
|
$this->lang = EncodeExplorer::getConfig("lang");
|
|
|
|
|
|
|
|
|
|
$this->mobile = false;
|
|
|
|
|
if(EncodeExplorer::getConfig("mobile_enabled") == true)
|
|
|
|
|
{
|
|
|
|
|
if((EncodeExplorer::getConfig("mobile_default") == true || isset($_GET['m'])) && !isset($_GET['s']))
|
|
|
|
|
$this->mobile = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->logging = false;
|
|
|
|
|
if(EncodeExplorer::getConfig("log_file") != null && strlen(EncodeExplorer::getConfig("log_file")) > 0)
|
|
|
|
|
$this->logging = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Read the file list from the directory
|
|
|
|
|
//
|
|
|
|
|
function readDir()
|
|
|
|
|
{
|
|
|
|
|
global $encodeExplorer;
|
|
|
|
|
//
|
|
|
|
|
// Reading the data of files and directories
|
|
|
|
|
//
|
|
|
|
|
if($open_dir = @opendir($this->location->getFullPath()))
|
|
|
|
|
{
|
|
|
|
|
$this->dirs = array();
|
|
|
|
|
$this->files = array();
|
|
|
|
|
while ($object = readdir($open_dir))
|
|
|
|
|
{
|
|
|
|
|
if($object != "." && $object != "..")
|
|
|
|
|
{
|
|
|
|
|
if(is_dir($this->location->getDir(true, false, false, 0)."/".$object))
|
|
|
|
|
{
|
|
|
|
|
if(!in_array($object, EncodeExplorer::getConfig('hidden_dirs')))
|
|
|
|
|
$this->dirs[] = new Dir($object, $this->location);
|
|
|
|
|
}
|
|
|
|
|
else if(!in_array($object, EncodeExplorer::getConfig('hidden_files')))
|
|
|
|
|
$this->files[] = new File($object, $this->location);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
closedir($open_dir);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
$encodeExplorer->setErrorString("unable_to_read_dir");;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// A recursive function for calculating the total used space
|
|
|
|
|
//
|
|
|
|
|
function sum_dir($start_dir, $ignore_files, $levels = 1)
|
|
|
|
|
{
|
|
|
|
|
if ($dir = opendir($start_dir))
|
|
|
|
|
{
|
|
|
|
|
$total = 0;
|
|
|
|
|
while ((($file = readdir($dir)) !== false))
|
|
|
|
|
{
|
|
|
|
|
if (!in_array($file, $ignore_files))
|
|
|
|
|
{
|
|
|
|
|
if ((is_dir($start_dir . '/' . $file)) && ($levels - 1 >= 0))
|
|
|
|
|
{
|
|
|
|
|
$total += $this->sum_dir($start_dir . '/' . $file, $ignore_files, $levels-1);
|
|
|
|
|
}
|
|
|
|
|
elseif (is_file($start_dir . '/' . $file))
|
|
|
|
|
{
|
|
|
|
|
$total += File::getFileSize($start_dir . '/' . $file) / 1024;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
closedir($dir);
|
|
|
|
|
return $total;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function calculateSpace()
|
|
|
|
|
{
|
|
|
|
|
if(EncodeExplorer::getConfig('calculate_space_level') <= 0)
|
|
|
|
|
return;
|
|
|
|
|
$ignore_files = array('..', '.');
|
|
|
|
|
$start_dir = getcwd();
|
|
|
|
|
$spaceUsed = $this->sum_dir($start_dir, $ignore_files, EncodeExplorer::getConfig('calculate_space_level'));
|
|
|
|
|
$this->spaceUsed = round($spaceUsed/1024, 3);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function sort()
|
|
|
|
|
{
|
|
|
|
|
if(is_array($this->files)){
|
|
|
|
|
usort($this->files, "EncodeExplorer::cmp_".$this->sort_by);
|
|
|
|
|
if($this->sort_as == "desc")
|
|
|
|
|
$this->files = array_reverse($this->files);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(is_array($this->dirs)){
|
|
|
|
|
usort($this->dirs, "EncodeExplorer::cmp_name");
|
|
|
|
|
if($this->sort_by == "name" && $this->sort_as == "desc")
|
|
|
|
|
$this->dirs = array_reverse($this->dirs);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function makeArrow($sort_by)
|
|
|
|
|
{
|
|
|
|
|
if($this->sort_by == $sort_by && $this->sort_as == "asc")
|
|
|
|
|
{
|
|
|
|
|
$sort_as = "desc";
|
|
|
|
|
$img = "arrow_up";
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
$sort_as = "asc";
|
|
|
|
|
$img = "arrow_down";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if($sort_by == "name")
|
|
|
|
|
$text = $this->getString("file_name");
|
|
|
|
|
else if($sort_by == "size")
|
|
|
|
|
$text = $this->getString("size");
|
|
|
|
|
else if($sort_by == "mod")
|
|
|
|
|
$text = $this->getString("last_changed");
|
|
|
|
|
|
|
|
|
|
return "<a href=\"".$this->makeLink(false, false, $sort_by, $sort_as, null, $this->location->getDir(false, true, false, 0))."\">
|
|
|
|
|
$text <img style=\"border:0;\" alt=\"".$sort_as."\" src=\"?img=".$img."\" /></a>";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function makeLink($switchVersion, $logout, $sort_by, $sort_as, $delete, $dir)
|
|
|
|
|
{
|
|
|
|
|
$link = "?";
|
|
|
|
|
if($switchVersion == true && EncodeExplorer::getConfig("mobile_enabled") == true)
|
|
|
|
|
{
|
|
|
|
|
if($this->mobile == false)
|
|
|
|
|
$link .= "m&";
|
|
|
|
|
else
|
|
|
|
|
$link .= "s&";
|
|
|
|
|
}
|
|
|
|
|
else if($this->mobile == true && EncodeExplorer::getConfig("mobile_enabled") == true && EncodeExplorer::getConfig("mobile_default") == false)
|
|
|
|
|
$link .= "m&";
|
|
|
|
|
else if($this->mobile == false && EncodeExplorer::getConfig("mobile_enabled") == true && EncodeExplorer::getConfig("mobile_default") == true)
|
|
|
|
|
$link .= "s&";
|
|
|
|
|
|
|
|
|
|
if($logout == true)
|
|
|
|
|
{
|
|
|
|
|
$link .= "logout";
|
|
|
|
|
return $link;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(isset($this->lang) && $this->lang != EncodeExplorer::getConfig("lang"))
|
|
|
|
|
$link .= "lang=".$this->lang."&";
|
|
|
|
|
|
|
|
|
|
if($sort_by != null && strlen($sort_by) > 0)
|
|
|
|
|
$link .= "sort_by=".$sort_by."&";
|
|
|
|
|
|
|
|
|
|
if($sort_as != null && strlen($sort_as) > 0)
|
|
|
|
|
$link .= "sort_as=".$sort_as."&";
|
|
|
|
|
|
|
|
|
|
$link .= "dir=".$dir;
|
|
|
|
|
if($delete != null)
|
|
|
|
|
$link .= "&del=".$delete;
|
|
|
|
|
return $link;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function makeIcon($l)
|
|
|
|
|
{
|
|
|
|
|
$l = strtolower($l);
|
|
|
|
|
return "?img=".$l;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function formatModTime($time)
|
|
|
|
|
{
|
|
|
|
|
$timeformat = "d.m.y H:i:s";
|
|
|
|
|
if(EncodeExplorer::getConfig("time_format") != null && strlen(EncodeExplorer::getConfig("time_format")) > 0)
|
|
|
|
|
$timeformat = EncodeExplorer::getConfig("time_format");
|
|
|
|
|
return date($timeformat, $time);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function formatSize($size)
|
|
|
|
|
{
|
|
|
|
|
$sizes = Array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
|
|
|
|
|
$y = $sizes[0];
|
|
|
|
|
for ($i = 1; (($i < count($sizes)) && ($size >= 1024)); $i++)
|
|
|
|
|
{
|
|
|
|
|
$size = $size / 1024;
|
|
|
|
|
$y = $sizes[$i];
|
|
|
|
|
}
|
|
|
|
|
return round($size, 2)." ".$y;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Debugging output
|
|
|
|
|
//
|
|
|
|
|
function debug()
|
|
|
|
|
{
|
|
|
|
|
print("Explorer location: ".$this->location->getDir(true, false, false, 0)."\n");
|
|
|
|
|
for($i = 0; $i < count($this->dirs); $i++)
|
|
|
|
|
$this->dirs[$i]->output();
|
|
|
|
|
for($i = 0; $i < count($this->files); $i++)
|
|
|
|
|
$this->files[$i]->output();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Comparison functions for sorting.
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
public static function cmp_name($b, $a)
|
|
|
|
|
{
|
|
|
|
|
return strcasecmp($a->name, $b->name);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function cmp_size($a, $b)
|
|
|
|
|
{
|
|
|
|
|
return ($a->size - $b->size);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function cmp_mod($b, $a)
|
|
|
|
|
{
|
|
|
|
|
return ($a->modTime - $b->modTime);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// The function for getting a translated string.
|
|
|
|
|
// Falls back to english if the correct language is missing something.
|
|
|
|
|
//
|
|
|
|
|
public static function getLangString($stringName, $lang)
|
|
|
|
|
{
|
|
|
|
|
global $_TRANSLATIONS;
|
|
|
|
|
if(isset($_TRANSLATIONS[$lang]) && is_array($_TRANSLATIONS[$lang])
|
|
|
|
|
&& isset($_TRANSLATIONS[$lang][$stringName]))
|
|
|
|
|
return $_TRANSLATIONS[$lang][$stringName];
|
|
|
|
|
else if(isset($_TRANSLATIONS["en"]))// && is_array($_TRANSLATIONS["en"])
|
|
|
|
|
//&& isset($_TRANSLATIONS["en"][$stringName]))
|
|
|
|
|
return $_TRANSLATIONS["en"][$stringName];
|
|
|
|
|
else
|
|
|
|
|
return "Translation error";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getString($stringName)
|
|
|
|
|
{
|
|
|
|
|
return EncodeExplorer::getLangString($stringName, $this->lang);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// The function for getting configuration values
|
|
|
|
|
//
|
|
|
|
|
public static function getConfig($name)
|
|
|
|
|
{
|
|
|
|
|
global $_CONFIG;
|
|
|
|
|
if(isset($_CONFIG, $_CONFIG[$name]))
|
|
|
|
|
return $_CONFIG[$name];
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function setError($message)
|
|
|
|
|
{
|
|
|
|
|
global $_ERROR;
|
|
|
|
|
if(isset($_ERROR) && strlen($_ERROR) > 0)
|
|
|
|
|
;// keep the first error and discard the rest
|
|
|
|
|
else
|
|
|
|
|
$_ERROR = $message;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function setErrorString($stringName)
|
|
|
|
|
{
|
|
|
|
|
EncodeExplorer::setError($this->getString($stringName));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Main function, activating tasks
|
|
|
|
|
//
|
|
|
|
|
function run($location)
|
|
|
|
|
{
|
|
|
|
|
$this->location = $location;
|
|
|
|
|
$this->calculateSpace();
|
|
|
|
|
$this->readDir();
|
|
|
|
|
$this->sort();
|
|
|
|
|
$this->outputHtml();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function printLoginBox()
|
|
|
|
|
{
|
|
|
|
|
?>
|
|
|
|
|
<div id="login">
|
|
|
|
|
<form enctype="multipart/form-data" action="<?php print $this->makeLink(false, false, null, null, null, ""); ?>" method="post">
|
|
|
|
|
<?php
|
|
|
|
|
if(GateKeeper::isLoginRequired())
|
|
|
|
|
{
|
|
|
|
|
$require_username = false;
|
|
|
|
|
foreach(EncodeExplorer::getConfig("users") as $user){
|
|
|
|
|
if($user[0] != null && strlen($user[0]) > 0){
|
|
|
|
|
$require_username = true;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if($require_username)
|
|
|
|
|
{
|
|
|
|
|
?>
|
|
|
|
|
<div><label for="user_name"><?php print $this->getString("username"); ?>:</label>
|
|
|
|
|
<input type="text" name="user_name" value="" id="user_name" /></div>
|
|
|
|
|
<?php
|
|
|
|
|
}
|
|
|
|
|
?>
|
|
|
|
|
<div><label for="user_pass"><?php print $this->getString("password"); ?>:</label>
|
|
|
|
|
<input type="password" name="user_pass" id="user_pass" /></div>
|
|
|
|
|
<div><input type="submit" value="<?php print $this->getString("log_in"); ?>" class="button" /></div>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
<?php
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Printing the actual page
|
|
|
|
|
//
|
|
|
|
|
function outputHtml()
|
|
|
|
|
{
|
|
|
|
|
global $_ERROR;
|
|
|
|
|
global $_START_TIME;
|
|
|
|
|
?>
|
|
|
|
|
<!DOCTYPE HTML>
|
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $this->getConfig('lang'); ?>" lang="<?php print $this->getConfig('lang'); ?>">
|
|
|
|
|
<head>
|
|
|
|
|
<meta name="viewport" content="width=device-width" />
|
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=<?php print $this->getConfig('charset'); ?>">
|
|
|
|
|
<?php css(); ?>
|
|
|
|
|
<!-- <meta charset="<?php print $this->getConfig('charset'); ?>" /> -->
|
|
|
|
|
<?php
|
|
|
|
|
if(($this->getConfig('log_file') != null && strlen($this->getConfig('log_file')) > 0)
|
|
|
|
|
|| ($this->getConfig('thumbnails') != null && $this->getConfig('thumbnails') == true && $this->mobile == false)
|
|
|
|
|
|| (GateKeeper::isDeleteAllowed()))
|
|
|
|
|
{
|
|
|
|
|
?>
|
|
|
|
|
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
|
//<![CDATA[
|
|
|
|
|
$(document).ready(function() {
|
|
|
|
|
<?php
|
|
|
|
|
if(GateKeeper::isDeleteAllowed()){
|
|
|
|
|
?>
|
|
|
|
|
$('td.del a').click(function(){
|
|
|
|
|
var answer = confirm('Are you sure you want to delete : \'' + $(this).attr("data-name") + "\' ?");
|
|
|
|
|
return answer;
|
|
|
|
|
});
|
|
|
|
|
<?php
|
|
|
|
|
}
|
|
|
|
|
if($this->logging == true)
|
|
|
|
|
{
|
|
|
|
|
?>
|
|
|
|
|
function logFileClick(path)
|
|
|
|
|
{
|
|
|
|
|
$.ajax({
|
|
|
|
|
async: false,
|
|
|
|
|
type: "POST",
|
|
|
|
|
data: {log: path},
|
|
|
|
|
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
|
|
|
|
|
cache: false
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$("a.file").click(function(){
|
|
|
|
|
logFileClick("<?php print $this->location->getDir(true, true, false, 0);?>" + $(this).html());
|
|
|
|
|
return true;
|
|
|
|
|
});
|
|
|
|
|
<?php
|
|
|
|
|
}
|
|
|
|
|
if(EncodeExplorer::getConfig("thumbnails") == true && $this->mobile == false)
|
|
|
|
|
{
|
|
|
|
|
?>
|
|
|
|
|
function positionThumbnail(e) {
|
|
|
|
|
xOffset = 30;
|
|
|
|
|
yOffset = 10;
|
|
|
|
|
$("#thumb").css("left",(e.clientX + xOffset) + "px");
|
|
|
|
|
|
|
|
|
|
diff = 0;
|
|
|
|
|
if(e.clientY + $("#thumb").height() > $(window).height())
|
|
|
|
|
diff = e.clientY + $("#thumb").height() - $(window).height();
|
|
|
|
|
|
|
|
|
|
$("#thumb").css("top",(e.pageY - yOffset - diff) + "px");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$("a.thumb").hover(function(e){
|
|
|
|
|
$("#thumb").remove();
|
|
|
|
|
$("body").append("<div id=\"thumb\"><img src=\"?thumb="+ $(this).attr("href") +"\" alt=\"Preview\" \/><\/div>");
|
|
|
|
|
positionThumbnail(e);
|
|
|
|
|
$("#thumb").fadeIn("medium");
|
|
|
|
|
},
|
|
|
|
|
function(){
|
|
|
|
|
$("#thumb").remove();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$("a.thumb").mousemove(function(e){
|
|
|
|
|
positionThumbnail(e);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$("a.thumb").click(function(e){$("#thumb").remove(); return true;});
|
|
|
|
|
<?php
|
|
|
|
|
}
|
|
|
|
|
?>
|
|
|
|
|
});
|
|
|
|
|
//]]>
|
|
|
|
|
</script>
|
|
|
|
|
<?php
|
|
|
|
|
}
|
|
|
|
|
?>
|
|
|
|
|
<title><?php if(EncodeExplorer::getConfig('main_title') != null) print EncodeExplorer::getConfig('main_title'); ?></title>
|
|
|
|
|
</head>
|
|
|
|
|
<body class="<?php print ($this->mobile == true?"mobile":"standard");?>">
|
|
|
|
|
<?php
|
|
|
|
|
//
|
|
|
|
|
// Print the error (if there is something to print)
|
|
|
|
|
//
|
|
|
|
|
if(isset($_ERROR) && strlen($_ERROR) > 0)
|
|
|
|
|
{
|
|
|
|
|
print "<div id=\"error\">".$_ERROR."</div>";
|
|
|
|
|
}
|
|
|
|
|
?>
|
|
|
|
|
<div id="frame">
|
|
|
|
|
<?php
|
|
|
|
|
if(EncodeExplorer::getConfig('show_top') == true)
|
|
|
|
|
{
|
|
|
|
|
?>
|
|
|
|
|
<div id="top">
|
|
|
|
|
<a href="<?php print $this->makeLink(false, false, null, null, null, ""); ?>"><span><?php if(EncodeExplorer::getConfig('main_title') != null) print EncodeExplorer::getConfig('main_title'); ?></span></a>
|
|
|
|
|
<?php
|
|
|
|
|
if(EncodeExplorer::getConfig("secondary_titles") != null && is_array(EncodeExplorer::getConfig("secondary_titles")) && count(EncodeExplorer::getConfig("secondary_titles")) > 0 && $this->mobile == false)
|
|
|
|
|
{
|
|
|
|
|
$secondary_titles = EncodeExplorer::getConfig("secondary_titles");
|
|
|
|
|
print "<div class=\"subtitle\">".$secondary_titles[array_rand($secondary_titles)]."</div>\n";
|
|
|
|
|
}
|
|
|
|
|
?>
|
|
|
|
|
</div>
|
|
|
|
|
<?php
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Checking if the user is allowed to access the page, otherwise showing the login box
|
|
|
|
|
if(!GateKeeper::isAccessAllowed())
|
|
|
|
|
{
|
|
|
|
|
$this->printLoginBox();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if($this->mobile == false && EncodeExplorer::getConfig("show_path") == true)
|
|
|
|
|
{
|
|
|
|
|
?>
|
|
|
|
|
<div class="breadcrumbs">
|
|
|
|
|
<a href="?dir="><?php print $this->getString("root"); ?></a>
|
|
|
|
|
<?php
|
|
|
|
|
for($i = 0; $i < count($this->location->path); $i++)
|
|
|
|
|
{
|
|
|
|
|
print "> <a href=\"".$this->makeLink(false, false, null, null, null, $this->location->getDir(false, true, false, count($this->location->path) - $i - 1))."\">";
|
|
|
|
|
print $this->location->getPathLink($i, true);
|
|
|
|
|
print "</a>\n";
|
|
|
|
|
}
|
|
|
|
|
?>
|
|
|
|
|
</div>
|
|
|
|
|
<?php
|
|
|
|
|
}
|
|
|
|
|
?>
|
|
|
|
|
|
|
|
|
|
<!-- START: List table -->
|
|
|
|
|
<table class="table">
|
|
|
|
|
<?php
|
|
|
|
|
if($this->mobile == false)
|
|
|
|
|
{
|
|
|
|
|
?>
|
|
|
|
|
<tr class="row one header">
|
|
|
|
|
<td class="icon"> </td>
|
|
|
|
|
<td class="name"><?php print $this->makeArrow("name");?></td>
|
|
|
|
|
<td class="size"><?php print $this->makeArrow("size"); ?></td>
|
|
|
|
|
<td class="changed"><?php print $this->makeArrow("mod"); ?></td>
|
|
|
|
|
<?php if($this->mobile == false && GateKeeper::isDeleteAllowed()){?>
|
|
|
|
|
<td class="del"><?php print EncodeExplorer::getString("del"); ?></td>
|
|
|
|
|
<?php } ?>
|
|
|
|
|
</tr>
|
|
|
|
|
<?php
|
|
|
|
|
}
|
|
|
|
|
?>
|
|
|
|
|
<tr class="row two">
|
|
|
|
|
<td class="icon"><img alt="dir" src="?img=directory" /></td>
|
|
|
|
|
<td colspan="<?php print (($this->mobile == true?2:(GateKeeper::isDeleteAllowed()?4:3))); ?>" class="long">
|
|
|
|
|
<a class="item" href="<?php print $this->makeLink(false, false, null, null, null, $this->location->getDir(false, true, false, 1)); ?>">..</a>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<?php
|
|
|
|
|
//
|
|
|
|
|
// Ready to display folders and files.
|
|
|
|
|
//
|
|
|
|
|
$row = 1;
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Folders first
|
|
|
|
|
//
|
|
|
|
|
if($this->dirs)
|
|
|
|
|
{
|
|
|
|
|
foreach ($this->dirs as $dir)
|
|
|
|
|
{
|
|
|
|
|
$row_style = ($row ? "one" : "two");
|
|
|
|
|
print "<tr class=\"row ".$row_style."\">\n";
|
|
|
|
|
print "<td class=\"icon\"><img alt=\"dir\" src=\"?img=directory\" /></td>\n";
|
|
|
|
|
print "<td class=\"name\" colspan=\"".($this->mobile == true?2:3)."\">\n";
|
|
|
|
|
print "<a href=\"".$this->makeLink(false, false, null, null, null, $this->location->getDir(false, true, false, 0).$dir->getNameEncoded())."\" class=\"item dir\">";
|
|
|
|
|
print $dir->getNameHtml();
|
|
|
|
|
print "</a>\n";
|
|
|
|
|
print "</td>\n";
|
|
|
|
|
if($this->mobile == false && GateKeeper::isDeleteAllowed()){
|
|
|
|
|
print "<td class=\"del\"><a data-name=\"".htmlentities($dir->getName())."\" href=\"".$this->makeLink(false, false, null, null, $this->location->getDir(false, true, false, 0).$dir->getNameEncoded(), $this->location->getDir(false, true, false, 0))."\"><img src=\"?img=del\" alt=\"Delete\" /></a></td>";
|
|
|
|
|
}
|
|
|
|
|
print "</tr>\n";
|
|
|
|
|
$row =! $row;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Now the files
|
|
|
|
|
//
|
|
|
|
|
if($this->files)
|
|
|
|
|
{
|
|
|
|
|
$count = 0;
|
|
|
|
|
foreach ($this->files as $file)
|
|
|
|
|
{
|
|
|
|
|
$row_style = ($row ? "one" : "two");
|
|
|
|
|
print "<tr class=\"row ".$row_style.(++$count == count($this->files)?" last":"")."\">\n";
|
|
|
|
|
print "<td class=\"icon\"><img alt=\"".$file->getType()."\" src=\"".$this->makeIcon($file->getType())."\" /></td>\n";
|
|
|
|
|
print "<td class=\"name\">\n";
|
|
|
|
|
print "\t\t<a href=\"".$this->location->getDir(false, true, false, 0).$file->getNameEncoded()."\"";
|
|
|
|
|
if(EncodeExplorer::getConfig('open_in_new_window') == true)
|
|
|
|
|
print "target=\"_blank\"";
|
|
|
|
|
print " class=\"item file";
|
|
|
|
|
if($file->isValidForThumb())
|
|
|
|
|
print " thumb";
|
|
|
|
|
print "\">";
|
|
|
|
|
print $file->getNameHtml();
|
|
|
|
|
if($this->mobile == true)
|
|
|
|
|
{
|
|
|
|
|
print "<span class =\"size\">".$this->formatSize($file->getSize())."</span>";
|
|
|
|
|
}
|
|
|
|
|
print "</a>\n";
|
|
|
|
|
print "</td>\n";
|
|
|
|
|
if($this->mobile != true)
|
|
|
|
|
{
|
|
|
|
|
print "<td class=\"size\">".$this->formatSize($file->getSize())."</td>\n";
|
|
|
|
|
print "<td class=\"changed\">".$this->formatModTime($file->getModTime())."</td>\n";
|
|
|
|
|
}
|
|
|
|
|
if($this->mobile == false && GateKeeper::isDeleteAllowed()){
|
|
|
|
|
print "<td class=\"del\">
|
|
|
|
|
<a data-name=\"".htmlentities($file->getName())."\" href=\"".$this->makeLink(false, false, null, null, $this->location->getDir(false, true, false, 0).$file->getNameEncoded(), $this->location->getDir(false, true, false, 0))."\">
|
|
|
|
|
<img src=\"?img=del\" alt=\"Delete\" />
|
|
|
|
|
</a>
|
|
|
|
|
</td>";
|
|
|
|
|
}
|
|
|
|
|
print "</tr>\n";
|
|
|
|
|
$row =! $row;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// The files and folders have been displayed
|
|
|
|
|
//
|
|
|
|
|
?>
|
|
|
|
|
|
|
|
|
|
</table>
|
|
|
|
|
<!-- END: List table -->
|
|
|
|
|
<?php
|
|
|
|
|
}
|
|
|
|
|
?>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
if(GateKeeper::isAccessAllowed() && GateKeeper::showLoginBox()){
|
|
|
|
|
?>
|
|
|
|
|
<!-- START: Login area -->
|
|
|
|
|
<form enctype="multipart/form-data" method="post">
|
|
|
|
|
<div id="login_bar">
|
|
|
|
|
<?php print $this->getString("username"); ?>:
|
|
|
|
|
<input type="text" name="user_name" value="" id="user_name" />
|
|
|
|
|
<?php print $this->getString("password"); ?>:
|
|
|
|
|
<input type="password" name="user_pass" id="user_pass" />
|
|
|
|
|
<input type="submit" class="submit" value="<?php print $this->getString("log_in"); ?>" />
|
|
|
|
|
<div class="bar"></div>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
<!-- END: Login area -->
|
|
|
|
|
<?php
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(GateKeeper::isAccessAllowed() && $this->location->uploadAllowed() && (GateKeeper::isUploadAllowed() || GateKeeper::isNewdirAllowed()))
|
|
|
|
|
{
|
|
|
|
|
?>
|
|
|
|
|
<!-- START: Upload area -->
|
|
|
|
|
<form enctype="multipart/form-data" method="post">
|
|
|
|
|
<div id="upload">
|
|
|
|
|
<?php
|
|
|
|
|
if(GateKeeper::isNewdirAllowed()){
|
|
|
|
|
?>
|
|
|
|
|
<div id="newdir_container">
|
|
|
|
|
<input name="userdir" type="text" class="upload_dirname" />
|
|
|
|
|
<input type="submit" value="<?php print $this->getString("make_directory"); ?>" />
|
|
|
|
|
</div>
|
|
|
|
|
<?php
|
|
|
|
|
}
|
|
|
|
|
if(GateKeeper::isUploadAllowed()){
|
|
|
|
|
?>
|
|
|
|
|
<div id="upload_container">
|
|
|
|
|
<input name="userfile" type="file" class="upload_file" />
|
|
|
|
|
<input type="submit" value="<?php print $this->getString("upload"); ?>" class="upload_sumbit" />
|
|
|
|
|
</div>
|
|
|
|
|
<?php
|
|
|
|
|
}
|
|
|
|
|
?>
|
|
|
|
|
<div class="bar"></div>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
<!-- END: Upload area -->
|
|
|
|
|
<?php
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
?>
|
|
|
|
|
<!-- START: Info area -->
|
|
|
|
|
<div id="info">
|
|
|
|
|
<?php
|
|
|
|
|
if(GateKeeper::isUserLoggedIn())
|
|
|
|
|
print "<a href=\"".$this->makeLink(false, true, null, null, null, "")."\">".$this->getString("log_out")."</a> | ";
|
|
|
|
|
|
|
|
|
|
if(EncodeExplorer::getConfig("mobile_enabled") == true)
|
|
|
|
|
{
|
|
|
|
|
print "<a href=\"".$this->makeLink(true, false, null, null, null, $this->location->getDir(false, true, false, 0))."\">\n";
|
|
|
|
|
print ($this->mobile == true)?$this->getString("standard_version"):$this->getString("mobile_version")."\n";
|
|
|
|
|
print "</a> | \n";
|
|
|
|
|
}
|
|
|
|
|
if(GateKeeper::isAccessAllowed() && $this->getConfig("calculate_space_level") > 0 && $this->mobile == false)
|
|
|
|
|
{
|
|
|
|
|
print $this->getString("total_used_space").": ".$this->spaceUsed." MB | ";
|
|
|
|
|
}
|
|
|
|
|
if($this->mobile == false && $this->getConfig("show_load_time") == true)
|
|
|
|
|
{
|
|
|
|
|
printf($this->getString("page_load_time")." | ", (microtime(TRUE) - $_START_TIME)*1000);
|
|
|
|
|
}
|
|
|
|
|
?>
|
|
|
|
|
<a href="http://encode-explorer.siineiolekala.net">Encode Explorer</a>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- END: Info area -->
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|
|
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// This is where the system is activated.
|
|
|
|
|
// We check if the user wants an image and show it. If not, we show the explorer.
|
|
|
|
|
//
|
|
|
|
|
$encodeExplorer = new EncodeExplorer();
|
|
|
|
|
$encodeExplorer->init();
|
|
|
|
|
|
|
|
|
|
GateKeeper::init();
|
|
|
|
|
|
|
|
|
|
if(!ImageServer::showImage() && !Logger::logQuery())
|
|
|
|
|
{
|
|
|
|
|
$location = new Location();
|
|
|
|
|
$location->init();
|
|
|
|
|
if(GateKeeper::isAccessAllowed())
|
|
|
|
|
{
|
|
|
|
|
Logger::logAccess($location->getDir(true, false, false, 0), true);
|
|
|
|
|
$fileManager = new FileManager();
|
|
|
|
|
$fileManager->run($location);
|
|
|
|
|
}
|
|
|
|
|
$encodeExplorer->run($location);
|
|
|
|
|
}
|
|
|
|
|
?>
|