diff --git a/e107_admin/filetypes_.xml b/e107_admin/filetypes_.xml deleted file mode 100644 index 8b265e656..000000000 --- a/e107_admin/filetypes_.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/e107_admin/update_routines.php b/e107_admin/update_routines.php index d9fc63aaf..40e733a46 100644 --- a/e107_admin/update_routines.php +++ b/e107_admin/update_routines.php @@ -1057,6 +1057,19 @@ function update_706_to_800($type='') mkdir(e_TEMP,0755); } + // Autogenerate filetypes.xml if not found. + if(!is_readable(e_SYSTEM."filetypes.xml")) + { + $data = ' + + +'; + + file_put_contents(e_SYSTEM."filetypes.xml",$data); + } + + + $root_media = str_replace(basename(e_MEDIA)."/","",e_MEDIA); $user_media_dirs = array("images","avatars","files","temp","videos","icons"); diff --git a/e107_handlers/upload_handler.php b/e107_handlers/upload_handler.php index 8c9ed5203..4aa15cbcc 100644 --- a/e107_handlers/upload_handler.php +++ b/e107_handlers/upload_handler.php @@ -515,6 +515,7 @@ function file_upload($uploaddir, $avatar = FALSE, $fileinfo = "", $overwrite = " * 9 - unacceptable file type (prone to exploits) */ + //TODO - Move this function to file_class.php function vet_file($filename, $target_name, $allowed_filetypes = '', $unknown = FALSE) { // 1. Start by checking against filetypes - that's the easy one! @@ -692,12 +693,12 @@ function vet_file($filename, $target_name, $allowed_filetypes = '', $unknown = F } } - if ($def_file && is_readable(e_ADMIN.$def_file)) + if ($def_file && is_readable(e_SYSTEM.$def_file)) { $xml = e107::getXml(); // class tag should be always array $xml->setOptArrayTags('class'); - $temp_vars = $xml->loadXMLfile(e_ADMIN.$def_file, 'filetypes', false); + $temp_vars = $xml->loadXMLfile(e_SYSTEM.$def_file, 'filetypes', false); if ($temp_vars === FALSE) { echo "Error reading XML file: {$def_file}
"; @@ -785,6 +786,7 @@ function vet_file($filename, $target_name, $allowed_filetypes = '', $unknown = F { if ($filename != '') { + if (strtolower(substr($filename, -4) == '.xml')) { return get_XML_filetypes($filename, $file_mask); @@ -792,7 +794,7 @@ function vet_file($filename, $target_name, $allowed_filetypes = '', $unknown = F return get_allowed_filetypes($filename, $file_mask); } - if (is_readable(e_ADMIN.e_READ_FILETYPES)) + if (is_readable(e_SYSTEM.e_READ_FILETYPES)) { return get_XML_filetypes(e_READ_FILETYPES, $file_mask); }