Example #1
0
 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);
                         }
                     }
                 }
             }
         }
     }
 }