本文整理汇总了PHP中CKFinder_Connector_Core_Hooks::run方法的典型用法代码示例。如果您正苦于以下问题:PHP CKFinder_Connector_Core_Hooks::run方法的具体用法?PHP CKFinder_Connector_Core_Hooks::run怎么用?PHP CKFinder_Connector_Core_Hooks::run使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CKFinder_Connector_Core_Hooks
的用法示例。
在下文中一共展示了CKFinder_Connector_Core_Hooks::run方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: executeCommand
/**
* Execute command
*
* @param string $command
* @access public
*/
public function executeCommand($command)
{
if (!CKFinder_Connector_Core_Hooks::run('BeforeExecuteCommand', array(&$command))) {
return;
}
switch ($command) {
case 'FileUpload':
$this->_registry->set("errorHandler", "ErrorHandler_FileUpload");
$obj =& CKFinder_Connector_Core_Factory::getInstance("CommandHandler_" . $command);
$obj->sendResponse();
break;
case 'QuickUpload':
$this->_registry->set("errorHandler", "ErrorHandler_QuickUpload");
$obj =& CKFinder_Connector_Core_Factory::getInstance("CommandHandler_" . $command);
$obj->sendResponse();
break;
case 'DownloadFile':
case 'Thumbnail':
$this->_registry->set("errorHandler", "ErrorHandler_Http");
$obj =& CKFinder_Connector_Core_Factory::getInstance("CommandHandler_" . $command);
$obj->sendResponse();
break;
case 'CopyFiles':
case 'CreateFolder':
case 'DeleteFiles':
case 'DeleteFolder':
case 'GetFiles':
case 'GetFolders':
case 'Init':
case 'LoadCookies':
case 'MoveFiles':
case 'RenameFile':
case 'RenameFolder':
$obj =& CKFinder_Connector_Core_Factory::getInstance("CommandHandler_" . $command);
$obj->sendResponse();
break;
default:
$this->handleInvalidCommand();
break;
}
}
示例2: buildXml
/**
* handle request and build XML
* @access protected
*
*/
function buildXml()
{
$_config =& CKFinder_Connector_Core_Factory::getInstance("Core_Config");
// Create the "ConnectorInfo" node.
$_oConnInfo = new Ckfinder_Connector_Utils_XmlNode("ConnectorInfo");
$this->_connectorNode->addChild($_oConnInfo);
$_oConnInfo->addAttribute("enabled", $_config->getIsEnabled() ? "true" : "false");
if (!$_config->getIsEnabled()) {
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_CONNECTOR_DISABLED);
}
$_ln = '';
$_lc = $_config->getLicenseKey() . ' ';
$pos = strpos(CKFINDER_CHARS, $_lc[0]) % 5;
if ($pos == 1 || $pos == 4) {
$_ln = $_config->getLicenseName();
}
$_oConnInfo->addAttribute("s", $_ln);
$_oConnInfo->addAttribute("c", trim($_lc[11] . $_lc[0] . $_lc[8] . $_lc[12] . $_lc[26] . $_lc[2] . $_lc[3] . $_lc[25] . $_lc[1]));
$_thumbnailsConfig = $_config->getThumbnailsConfig();
$_thumbnailsEnabled = $_thumbnailsConfig->getIsEnabled();
$_oConnInfo->addAttribute("thumbsEnabled", $_thumbnailsEnabled ? "true" : "false");
if ($_thumbnailsEnabled) {
$_oConnInfo->addAttribute("thumbsUrl", $_thumbnailsConfig->getUrl());
$_oConnInfo->addAttribute("thumbsDirectAccess", $_thumbnailsConfig->getDirectAccess() ? "true" : "false");
}
$_imagesConfig = $_config->getImagesConfig();
$_oConnInfo->addAttribute("imgWidth", $_imagesConfig->getMaxWidth());
$_oConnInfo->addAttribute("imgHeight", $_imagesConfig->getMaxHeight());
// Create the "ResourceTypes" node.
$_oResourceTypes = new Ckfinder_Connector_Utils_XmlNode("ResourceTypes");
$this->_connectorNode->addChild($_oResourceTypes);
// Create the "PluginsInfo" node.
$_oPluginsInfo = new Ckfinder_Connector_Utils_XmlNode("PluginsInfo");
$this->_connectorNode->addChild($_oPluginsInfo);
// Load the resource types in an array.
$_aTypes = $_config->getDefaultResourceTypes();
if (!sizeof($_aTypes)) {
$_aTypes = $_config->getResourceTypeNames();
}
$_aTypesSize = sizeof($_aTypes);
if ($_aTypesSize) {
$phpMaxSize = 0;
$max_upload = CKFinder_Connector_Utils_Misc::returnBytes(ini_get('upload_max_filesize'));
if ($max_upload) {
$phpMaxSize = $max_upload;
}
$max_post = CKFinder_Connector_Utils_Misc::returnBytes(ini_get('post_max_size'));
if ($max_post) {
$phpMaxSize = $phpMaxSize ? min($phpMaxSize, $max_post) : $max_post;
}
//ini_get('memory_limit') only works if compiled with "--enable-memory-limit"
$memory_limit = CKFinder_Connector_Utils_Misc::returnBytes(@ini_get('memory_limit'));
if ($memory_limit && $memory_limit != -1) {
$phpMaxSize = $phpMaxSize ? min($phpMaxSize, $memory_limit) : $memory_limit;
}
$_oConnInfo->addAttribute("uploadMaxSize", $phpMaxSize);
$_oConnInfo->addAttribute("uploadCheckImages", $_config->checkSizeAfterScaling() ? "false" : "true");
for ($i = 0; $i < $_aTypesSize; $i++) {
$_resourceTypeName = $_aTypes[$i];
$_acl = $_config->getAccessControlConfig();
$_aclMask = $_acl->getComputedMask($_resourceTypeName, "/");
if (($_aclMask & CKFINDER_CONNECTOR_ACL_FOLDER_VIEW) != CKFINDER_CONNECTOR_ACL_FOLDER_VIEW) {
continue;
}
if (!isset($_GET['type']) || $_GET['type'] === $_resourceTypeName) {
//print $_resourceTypeName;
$_oTypeInfo = $_config->getResourceTypeConfig($_resourceTypeName);
//print_r($_oTypeInfo);
$_oResourceType[$i] = new Ckfinder_Connector_Utils_XmlNode("ResourceType");
$_oResourceTypes->addChild($_oResourceType[$i]);
$_oResourceType[$i]->addAttribute("name", $_resourceTypeName);
$_oResourceType[$i]->addAttribute("url", $_oTypeInfo->getUrl());
$_oResourceType[$i]->addAttribute("allowedExtensions", implode(",", $_oTypeInfo->getAllowedExtensions()));
$_oResourceType[$i]->addAttribute("deniedExtensions", implode(",", $_oTypeInfo->getDeniedExtensions()));
$_oResourceType[$i]->addAttribute("hash", substr(md5($_oTypeInfo->getDirectory()), 0, 16));
$_oResourceType[$i]->addAttribute("hasChildren", CKFinder_Connector_Utils_FileSystem::hasChildren($_oTypeInfo->getDirectory()) ? "true" : "false");
$_oResourceType[$i]->addAttribute("acl", $_aclMask);
$maxSize = $_oTypeInfo->getMaxSize();
if ($phpMaxSize) {
$maxSize = $maxSize ? min($maxSize, $phpMaxSize) : $phpMaxSize;
}
$_oResourceType[$i]->addAttribute("maxSize", $maxSize);
}
}
}
$config = $GLOBALS['config'];
if (!empty($config['Plugins']) && is_array($config['Plugins'])) {
$_oConnInfo->addAttribute("plugins", implode(",", $config['Plugins']));
}
CKFinder_Connector_Core_Hooks::run('InitCommand', array(&$this->_connectorNode));
}
示例3: buildXml
/**
* handle request and build XML
* @access protected
*
*/
protected function buildXml()
{
$_config =& CKFinder_Connector_Core_Factory::getInstance("Core_Config");
// Create the "ConnectorInfo" node.
$_oConnInfo = new Ckfinder_Connector_Utils_XmlNode("ConnectorInfo");
$this->_connectorNode->addChild($_oConnInfo);
$_oConnInfo->addAttribute("enabled", $_config->getIsEnabled() ? "true" : "false");
if (!$_config->getIsEnabled()) {
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_CONNECTOR_DISABLED);
}
$_ln = '';
$_lc = $_config->getLicenseKey() . ' ';
if (1 == strpos(CKFINDER_CHARS, $_lc[0]) % 5) {
$_ln = $_config->getLicenseName();
}
$_oConnInfo->addAttribute("s", $_ln);
$_oConnInfo->addAttribute("c", trim($_lc[11] . $_lc[0] . $_lc[8] . $_lc[12] . $_lc[26] . $_lc[2] . $_lc[3] . $_lc[25] . $_lc[1]));
$_thumbnailsConfig = $_config->getThumbnailsConfig();
$_thumbnailsEnabled = $_thumbnailsConfig->getIsEnabled();
$_oConnInfo->addAttribute("thumbsEnabled", $_thumbnailsEnabled ? "true" : "false");
if ($_thumbnailsEnabled) {
$_oConnInfo->addAttribute("thumbsUrl", $_thumbnailsConfig->getUrl());
$_oConnInfo->addAttribute("thumbsDirectAccess", $_thumbnailsConfig->getDirectAccess() ? "true" : "false");
}
$_imagesConfig = $_config->getImagesConfig();
$_oConnInfo->addAttribute("imgWidth", $_imagesConfig->getMaxWidth());
$_oConnInfo->addAttribute("imgHeight", $_imagesConfig->getMaxHeight());
// Create the "ResourceTypes" node.
$_oResourceTypes = new Ckfinder_Connector_Utils_XmlNode("ResourceTypes");
$this->_connectorNode->addChild($_oResourceTypes);
// Create the "PluginsInfo" node.
$_oPluginsInfo = new Ckfinder_Connector_Utils_XmlNode("PluginsInfo");
$this->_connectorNode->addChild($_oPluginsInfo);
// Load the resource types in an array.
$_aTypes = $_config->getDefaultResourceTypes();
if (!sizeof($_aTypes)) {
$_aTypes = $_config->getResourceTypeNames();
}
$_aTypesSize = sizeof($_aTypes);
if ($_aTypesSize) {
for ($i = 0; $i < $_aTypesSize; $i++) {
$_resourceTypeName = $_aTypes[$i];
$_acl = $_config->getAccessControlConfig();
$_aclMask = $_acl->getComputedMask($_resourceTypeName, "/");
if (($_aclMask & CKFINDER_CONNECTOR_ACL_FOLDER_VIEW) != CKFINDER_CONNECTOR_ACL_FOLDER_VIEW) {
continue;
}
if (!isset($_GET['type']) || $_GET['type'] === $_resourceTypeName) {
//print $_resourceTypeName;
$_oTypeInfo = $_config->getResourceTypeConfig($_resourceTypeName);
//print_r($_oTypeInfo);
$_oResourceType[$i] = new Ckfinder_Connector_Utils_XmlNode("ResourceType");
$_oResourceTypes->addChild($_oResourceType[$i]);
$_oResourceType[$i]->addAttribute("name", $_resourceTypeName);
$_oResourceType[$i]->addAttribute("url", $_oTypeInfo->getUrl());
$_oResourceType[$i]->addAttribute("allowedExtensions", implode(",", $_oTypeInfo->getAllowedExtensions()));
$_oResourceType[$i]->addAttribute("deniedExtensions", implode(",", $_oTypeInfo->getDeniedExtensions()));
$_oResourceType[$i]->addAttribute("hash", substr(md5($_oTypeInfo->getDirectory()), 0, 16));
$_oResourceType[$i]->addAttribute("hasChildren", CKFinder_Connector_Utils_FileSystem::hasChildren($_oTypeInfo->getDirectory()) ? "true" : "false");
$_oResourceType[$i]->addAttribute("acl", $_aclMask);
}
}
}
$config = $GLOBALS['config'];
if (!empty($config['Plugins']) && is_array($config['Plugins'])) {
$_oConnInfo->addAttribute("plugins", implode(",", $config['Plugins']));
}
CKFinder_Connector_Core_Hooks::run('InitCommand', array(&$this->_connectorNode));
}
示例4: sendResponse
//.........这里部分代码省略.........
if ($htmlExtensions && !CKFinder_Connector_Utils_Misc::inArrayCaseInsensitive($sExtension, $htmlExtensions) && ($detectHtml = CKFinder_Connector_Utils_FileSystem::detectHtml($uploadedFile['tmp_name'])) === true) {
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_WRONG_HTML_FILE);
}
$sExtension = CKFinder_Connector_Utils_FileSystem::getExtension($sFileNameOrginal);
$secureImageUploads = $_config->getSecureImageUploads();
if ($secureImageUploads && ($isImageValid = CKFinder_Connector_Utils_FileSystem::isImageValid($uploadedFile['tmp_name'], $sExtension)) === false) {
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_CORRUPT);
}
switch ($uploadedFile['error']) {
case UPLOAD_ERR_OK:
break;
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_TOO_BIG);
break;
case UPLOAD_ERR_PARTIAL:
case UPLOAD_ERR_NO_FILE:
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_CORRUPT);
break;
case UPLOAD_ERR_NO_TMP_DIR:
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_NO_TMP_DIR);
break;
case UPLOAD_ERR_CANT_WRITE:
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_ACCESS_DENIED);
break;
case UPLOAD_ERR_EXTENSION:
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_ACCESS_DENIED);
break;
}
$sServerDir = $this->_currentFolder->getServerPath();
$iCounter = 0;
//personnal
$now = time();
$yearDir = $sServerDir . '/' . date('Y', $now) . '/';
if (!file_exists($yearDir) && !is_dir($yearDir)) {
mkdir($yearDir, 0777);
}
$monthDir = $yearDir . date('m', $now) . '/';
if (!file_exists($monthDir) && !is_dir($monthDir)) {
mkdir($monthDir, 0777);
}
$dayDir = $monthDir . date('d', $now);
if (!file_exists($dayDir) && !is_dir($dayDir)) {
mkdir($dayDir, 0777);
}
$sServerDir = $dayDir;
$oRegistry->set("FileUpload_url", $this->_currentFolder->getUrl() . date('Y', $now) . '/' . date('m', $now) . '/' . date('d', $now) . '/');
//personnal end
//file_put_contents($_SERVER['DOCUMENT_ROOT'].'/s.txt',$this->_currentFolder->getUrl());
//
while (true) {
$sFilePath = CKFinder_Connector_Utils_FileSystem::combinePaths($sServerDir, $sFileName);
if (file_exists($sFilePath)) {
$iCounter++;
$sFileName = CKFinder_Connector_Utils_FileSystem::getFileNameWithoutExtension($sFileNameOrginal) . "(" . $iCounter . ")" . "." . CKFinder_Connector_Utils_FileSystem::getExtension($sFileNameOrginal);
$oRegistry->set("FileUpload_fileName", $sFileName);
$iErrorNumber = CKFINDER_CONNECTOR_ERROR_UPLOADED_FILE_RENAMED;
} else {
if (false === move_uploaded_file($uploadedFile['tmp_name'], $sFilePath)) {
$iErrorNumber = CKFINDER_CONNECTOR_ERROR_ACCESS_DENIED;
} else {
if (isset($detectHtml) && $detectHtml === -1 && CKFinder_Connector_Utils_FileSystem::detectHtml($sFilePath) === true) {
@unlink($sFilePath);
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_WRONG_HTML_FILE);
} else {
if (isset($isImageValid) && $isImageValid === -1 && CKFinder_Connector_Utils_FileSystem::isImageValid($sFilePath, $sExtension) === false) {
@unlink($sFilePath);
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_CORRUPT);
}
}
}
if (is_file($sFilePath) && ($perms = $_config->getChmodFiles())) {
$oldumask = umask(0);
@chmod($sFilePath, $perms);
umask($oldumask);
}
break;
}
}
if (!$_config->checkSizeAfterScaling()) {
$this->_errorHandler->throwError($iErrorNumber, true, false);
}
//resize image if required
require_once CKFINDER_CONNECTOR_LIB_DIR . "/CommandHandler/Thumbnail.php";
$_imagesConfig = $_config->getImagesConfig();
if ($_imagesConfig->getMaxWidth() > 0 && $_imagesConfig->getMaxHeight() > 0 && $_imagesConfig->getQuality() > 0) {
CKFinder_Connector_CommandHandler_Thumbnail::createThumb($sFilePath, $sFilePath, $_imagesConfig->getMaxWidth(), $_imagesConfig->getMaxHeight(), $_imagesConfig->getQuality(), true);
}
if ($_config->checkSizeAfterScaling()) {
//check file size after scaling, attempt to delete if too big
clearstatcache();
if ($maxSize && filesize($sFilePath) > $maxSize) {
@unlink($sFilePath);
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_TOO_BIG);
} else {
$this->_errorHandler->throwError($iErrorNumber, true, false);
}
}
CKFinder_Connector_Core_Hooks::run('AfterFileUpload', array(&$this->_currentFolder, &$uploadedFile, &$sFilePath));
}
示例5: sendResponse
//.........这里部分代码省略.........
case UPLOAD_ERR_FORM_SIZE:
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_TOO_BIG);
break;
case UPLOAD_ERR_PARTIAL:
case UPLOAD_ERR_NO_FILE:
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_CORRUPT);
break;
case UPLOAD_ERR_NO_TMP_DIR:
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_NO_TMP_DIR);
break;
case UPLOAD_ERR_CANT_WRITE:
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_ACCESS_DENIED);
break;
case UPLOAD_ERR_EXTENSION:
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_ACCESS_DENIED);
break;
}
$sServerDir = $this->_currentFolder->getServerPath();
$iCounter = 0;
while (true) {
$sFilePath = CKFinder_Connector_Utils_FileSystem::combinePaths($sServerDir, $sFileName);
if (file_exists($sFilePath)) {
$iCounter++;
$sFileName = CKFinder_Connector_Utils_FileSystem::getFileNameWithoutExtension($sFileNameOrginal) . "(" . $iCounter . ")" . "." . CKFinder_Connector_Utils_FileSystem::getExtension($sFileNameOrginal);
$oRegistry->set("FileUpload_fileName", $sFileName);
$iErrorNumber = CKFINDER_CONNECTOR_ERROR_UPLOADED_FILE_RENAMED;
} else {
//move_uploaded_file($uploadedFile['tmp_name'], $sFilePath)
if (false === copy($uploadedFile['tmp_name'], $sFilePath)) {
$iErrorNumber = CKFINDER_CONNECTOR_ERROR_ACCESS_DENIED;
} else {
if (isset($detectHtml) && $detectHtml === -1 && CKFinder_Connector_Utils_FileSystem::detectHtml($sFilePath) === true) {
@unlink($sFilePath);
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_WRONG_HTML_FILE);
} else {
if (isset($isImageValid) && $isImageValid === -1 && CKFinder_Connector_Utils_FileSystem::isImageValid($sFilePath, $sExtension) === false) {
@unlink($sFilePath);
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_CORRUPT);
}
}
}
if (is_file($sFilePath) && ($perms = $_config->getChmodFiles())) {
$oldumask = umask(0);
chmod($sFilePath, $perms);
umask($oldumask);
}
break;
}
}
$sFileName_water = $sFileName;
if (stristr(PHP_OS, "WIN")) {
$sFileName_water = iconv("GBK", "utf-8", $sFileName);
}
if ($met_big_wate == 1) {
require_once CKFINDER_CONNECTOR_CONFIG_watermark_PATHX;
$img = new Watermark();
if ($met_wate_class == 2) {
$img->met_image_name = CKFINDER_CONNECTOR_CONFIG_img_PATHX . $met_wate_bigimg;
$img->met_image_pos = $met_watermark;
} else {
$img->met_text = $met_text_wate;
$img->met_text_size = $met_text_bigsize;
$img->met_text_color = $met_text_color;
$img->met_text_angle = $met_text_angle;
$img->met_text_pos = $met_watermark;
$img->met_text_font = CKFINDER_CONNECTOR_CONFIG_fonts_PATHX . $met_text_fonts;
}
if (!file_exists(CKFINDER_CONNECTOR_CONFIG_upload_PATHX . "/images/watermark/")) {
mkdir(CKFINDER_CONNECTOR_CONFIG_upload_PATHX . "/images/watermark/");
}
$img->src_image_name = CKFINDER_CONNECTOR_CONFIG_upload_PATHX . "/images/{$sFileName_water}";
$img->save_file = CKFINDER_CONNECTOR_CONFIG_upload_PATHX . "/images/watermark/{$sFileName_water}";
$img->create();
}
if (!$_config->checkSizeAfterScaling()) {
$this->_errorHandler->throwError($iErrorNumber, true, false);
}
//resize image if required
require_once CKFINDER_CONNECTOR_LIB_DIR . "/CommandHandler/Thumbnail.php";
$_imagesConfig = $_config->getImagesConfig();
/*图片如果超过设定最大值,则把图片缩小
if ($_imagesConfig->getMaxWidth()>0 && $_imagesConfig->getMaxHeight()>0 && $_imagesConfig->getQuality()>0) {
CKFinder_Connector_CommandHandler_Thumbnail::createThumb($sFilePath, $sFilePath, $_imagesConfig->getMaxWidth(), $_imagesConfig->getMaxHeight(), $_imagesConfig->getQuality(), true) ;
}
*/
if ($met_big_wate == 1) {
$oRegistry->set("FileUpload_url", $this->_currentFolder->getUrl() . 'watermark/');
}
if ($_config->checkSizeAfterScaling()) {
//check file size after scaling, attempt to delete if too big
clearstatcache();
if ($maxSize && filesize($sFilePath) > $maxSize) {
@unlink($sFilePath);
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_TOO_BIG);
} else {
$this->_errorHandler->throwError($iErrorNumber, true, false);
}
}
CKFinder_Connector_Core_Hooks::run('AfterFileUpload', array(&$this->_currentFolder, &$uploadedFile, &$sFilePath));
}
示例6: sendResponse
* Handle FileUpload command
*
* @package CKFinder
* @subpackage CommandHandlers
* @copyright CKSource - Frederico Knabben
*/
class CKFinder_Connector_CommandHandler_FileUpload extends CKFinder_Connector_CommandHandler_CommandHandlerBase
{
/**
* Command name
*
* @access protected
* @var string
*/
protected $command = "FileUpload";
/**
* send response (save uploaded file, resize if required)
* @access public
*
*/
public function sendResponse()
{
$iErrorNumber = CKFINDER_CONNECTOR_ERROR_NONE;
$_config =& CKFinder_Connector_Core_Factory::getInstance("Core_Config");
$oRegistry =& CKFinder_Connector_Core_Factory::getInstance("Core_Registry");
$oRegistry->set("FileUpload_fileName", "unknown file");
$uploadedFile = array_shift($_FILES);
if (!isset($uploadedFile['name'])) {
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_INVALID);
}
$sUnsafeFileName = CKFinder_Connector_Utils_FileSystem::convertToFilesystemEncoding(CKFinder_Connector_Utils_Misc::mbBasename($uploadedFile['name']));
$sFileName = CKFinder_Connector_Utils_FileSystem::secureFileName($sUnsafeFileName);
if ($sFileName != $sUnsafeFileName) {
$iErrorNumber = CKFINDER_CONNECTOR_ERROR_UPLOADED_INVALID_NAME_RENAMED;
}
$oRegistry->set("FileUpload_fileName", $sFileName);
$this->checkConnector();
$this->checkRequest();
if (!$this->_currentFolder->checkAcl(CKFINDER_CONNECTOR_ACL_FILE_UPLOAD)) {
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UNAUTHORIZED);
}
$_resourceTypeConfig = $this->_currentFolder->getResourceTypeConfig();
if (!CKFinder_Connector_Utils_FileSystem::checkFileName($sFileName) || $_resourceTypeConfig->checkIsHiddenFile($sFileName)) {
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_INVALID_NAME);
}
$resourceTypeInfo = $this->_currentFolder->getResourceTypeConfig();
if (!$resourceTypeInfo->checkExtension($sFileName)) {
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_INVALID_EXTENSION);
}
$oRegistry->set("FileUpload_fileName", $sFileName);
$oRegistry->set("FileUpload_url", $this->_currentFolder->getUrl());
$maxSize = $resourceTypeInfo->getMaxSize();
if (!$_config->checkSizeAfterScaling() && $maxSize && $uploadedFile['size'] > $maxSize) {
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_TOO_BIG);
}
$htmlExtensions = $_config->getHtmlExtensions();
$sExtension = CKFinder_Connector_Utils_FileSystem::getExtension($sFileName);
if ($htmlExtensions && !CKFinder_Connector_Utils_Misc::inArrayCaseInsensitive($sExtension, $htmlExtensions) && ($detectHtml = CKFinder_Connector_Utils_FileSystem::detectHtml($uploadedFile['tmp_name'])) === true) {
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_WRONG_HTML_FILE);
}
$secureImageUploads = $_config->getSecureImageUploads();
if ($secureImageUploads && ($isImageValid = CKFinder_Connector_Utils_FileSystem::isImageValid($uploadedFile['tmp_name'], $sExtension)) === false) {
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_CORRUPT);
}
switch ($uploadedFile['error']) {
case UPLOAD_ERR_OK:
break;
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_TOO_BIG);
break;
case UPLOAD_ERR_PARTIAL:
case UPLOAD_ERR_NO_FILE:
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_CORRUPT);
break;
case UPLOAD_ERR_NO_TMP_DIR:
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_NO_TMP_DIR);
break;
case UPLOAD_ERR_CANT_WRITE:
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_ACCESS_DENIED);
break;
case UPLOAD_ERR_EXTENSION:
$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_ACCESS_DENIED);
break;
}
$sServerDir = $this->_currentFolder->getServerPath();
//.........这里部分代码省略.........