protected function validateFile(&$strFileName, $arFile, $bForceMD5 = false) { $strFileName = GetFileName($arFile["name"]); //File is going to be deleted if (isset($arFile["del"]) && $arFile["del"] != "") { //There is no new file as replacement if ($strFileName == "") { return ""; } } if ($arFile["name"] == "") { return ""; } if (COption::GetOptionInt("main", "disk_space") > 0) { $quota = new CDiskQuota(); if (!$quota->checkDiskQuota($arFile)) { return GetMessage("FILE_BAD_QUOTA"); } } $io = CBXVirtualIo::GetInstance(); if ($bForceMD5 != true && COption::GetOptionString("main", "save_original_file_name", "N") == "Y") { if (COption::GetOptionString("main", "translit_original_file_name", "N") == "Y") { $strFileName = CUtil::translit($strFileName, LANGUAGE_ID, array("max_len" => 1024, "safe_chars" => ".", "replace_space" => '-')); } if (COption::GetOptionString("main", "convert_original_file_name", "Y") == "Y") { $strFileName = $io->RandomizeInvalidFilename($strFileName); } } if (!$io->ValidateFilenameString($strFileName)) { return GetMessage("MAIN_BAD_FILENAME1"); } //check for double extension vulnerability $strFileName = RemoveScriptExtension($strFileName); if ($strFileName == '') { return GetMessage("FILE_BAD_FILENAME"); } if (strlen($strFileName) > 255) { return GetMessage("MAIN_BAD_FILENAME_LEN"); } //check .htaccess etc. if (IsFileUnsafe($strFileName)) { return GetMessage("FILE_BAD_TYPE"); } //nginx returns octet-stream for .jpg if (GetFileNameWithoutExtension($strFileName) == '') { return GetMessage("FILE_BAD_FILENAME"); } return ""; }
public static function import($arParams) { global $APPLICATION; // check fields $aMsg = array(); $arParams['SET_ID'] = intval($arParams['SET_ID']); $arParams['IMPORT_IF_FILE_EXISTS'] = isset($arParams['IMPORT_IF_FILE_EXISTS']) && $arParams['IMPORT_IF_FILE_EXISTS'] == 'Y' ? true : false; if (isset($arParams['FILE']) && GetFileExtension($arParams['FILE']) != 'zip') { $aMsg["FILE_EXT"] = array("id" => "FILE_EXT", "text" => GetMessage("MAIN_SMILE_IMPORT_FILE_EXT_ERROR")); } else { if (!isset($arParams['FILE']) || !file_exists($arParams['FILE'])) { $aMsg["FILE"] = array("id" => "FILE", "text" => GetMessage("MAIN_SMILE_IMPORT_FILE_ERROR")); } else { if ($arParams['SET_ID'] <= 0) { $aMsg["SET_ID"] = array("id" => "SET_ID", "text" => GetMessage("MAIN_SMILE_IMPORT_SET_ID_ERROR")); } } } if (!empty($aMsg)) { $e = new CAdminException($aMsg); $APPLICATION->ThrowException($e); return false; } $sUnpackDir = CTempFile::GetDirectoryName(1); CheckDirPath($sUnpackDir); /** @var IBXArchive $oArchiver */ $oArchiver = CBXArchive::GetArchive($arParams['FILE'], "ZIP"); $oArchiver->SetOptions(array("STEP_TIME" => 300)); if (!$oArchiver->Unpack($sUnpackDir)) { $aMsg["UNPACK"] = array("id" => "UNPACK", "text" => GetMessage("MAIN_SMILE_IMPORT_UNPACK_ERROR")); $e = new CAdminException($aMsg); $APPLICATION->ThrowException($e); return false; } $arSmiles = array(); if (file_exists($sUnpackDir . 'install.csv')) { $arLang = array(); $db_res = CLanguage::GetList($b = "sort", $o = "asc"); while ($res = $db_res->Fetch()) { if (file_exists($sUnpackDir . 'install_lang_' . $res["LID"] . '.csv')) { $arSmiles = array(); $csvFile = new CCSVData(); $csvFile->LoadFile($sUnpackDir . 'install_lang_' . $res["LID"] . '.csv'); $csvFile->SetFieldsType("R"); $csvFile->SetFirstHeader(false); while ($smile = $csvFile->Fetch()) { if (defined('BX_UTF') && BX_UTF && $res["LID"] == 'ru') { $smile[1] = $APPLICATION->ConvertCharset($smile[1], 'windows-1251', 'utf-8'); } $arLang[$smile[0]][$res["LID"]] = $smile[1]; } } } $csvFile = new CCSVData(); $csvFile->LoadFile($sUnpackDir . 'install.csv'); $csvFile->SetFieldsType("R"); $csvFile->SetFirstHeader(false); while ($smileRes = $csvFile->Fetch()) { $smile = array('TYPE' => $smileRes[0], 'CLICKABLE' => $smileRes[1] == 'Y' ? 'Y' : 'N', 'SORT' => intval($smileRes[2]), 'IMAGE' => $smileRes[3], 'IMAGE_WIDTH' => intval($smileRes[4]), 'IMAGE_HEIGHT' => intval($smileRes[5]), 'IMAGE_DEFINITION' => in_array($smileRes[6], array(self::IMAGE_SD, self::IMAGE_HD, self::IMAGE_UHD)) ? $smileRes[6] : ($smileRes[6] == 'Y' ? self::IMAGE_HD : self::IMAGE_SD), 'HIDDEN' => in_array($smileRes[7], array('Y', 'N')) ? $smileRes[7] : 'N', 'IMAGE_LANG' => in_array($smileRes[7], array('Y', 'N')) ? $smileRes[8] : $smileRes[7], 'TYPING' => in_array($smileRes[7], array('Y', 'N')) ? $smileRes[9] : $smileRes[8]); if (!in_array($smile['TYPE'], array(CSmile::TYPE_SMILE, CSmile::TYPE_ICON))) { continue; } $smile['IMAGE'] = GetFileName($smile['IMAGE']); $imgArray = CFile::GetImageSize($sUnpackDir . $smile['IMAGE']); if (!is_array($imgArray)) { continue; } $arInsert = array('TYPE' => $smile['TYPE'], 'SET_ID' => $arParams['SET_ID'], 'CLICKABLE' => $smile['CLICKABLE'], 'SORT' => $smile['SORT'], 'IMAGE' => $smile['IMAGE'], 'IMAGE_WIDTH' => $smile['IMAGE_WIDTH'], 'IMAGE_HEIGHT' => $smile['IMAGE_HEIGHT'], 'IMAGE_DEFINITION' => $smile['IMAGE_DEFINITION'], 'HIDDEN' => $smile['HIDDEN'], 'TYPING' => $smile['TYPING']); if (isset($arLang[$smile['IMAGE_LANG']])) { $arInsert['LANG'] = $arLang[$smile['IMAGE_LANG']]; } $arSmiles[] = $arInsert; } } else { $smileSet = CSmileSet::getById($arParams['SET_ID']); if ($handle = @opendir($sUnpackDir)) { $sort = 300; while (($file = readdir($handle)) !== false) { if ($file == "." || $file == "..") { continue; } if (is_file($sUnpackDir . $file)) { $imgArray = CFile::GetImageSize($sUnpackDir . $file); if (is_array($imgArray)) { $smileHR = self::IMAGE_SD; $smileType = CSmile::TYPE_SMILE; $smileCode = GetFileNameWithoutExtension($file); if (strpos($file, 'smile_') !== false && strpos($file, 'smile_') == 0) { $smileCode = substr($smileCode, 6); } elseif (strpos($file, 'smile') !== false && strpos($file, 'smile') == 0) { $smileCode = substr($smileCode, 5); } elseif (strpos($file, 'icon_') !== false && strpos($file, 'icon_') == 0) { $smileType = CSmile::TYPE_ICON; $smileCode = substr($smileCode, 5); } else { if (strpos($file, 'icon') !== false && strpos($file, 'icon') == 0) { $smileType = CSmile::TYPE_ICON; $smileCode = substr($smileCode, 4); } } if (strrpos($smileCode, '_hr') !== false && strrpos($smileCode, '_hr') == strlen($smileCode) - 3) { $smileHR = self::IMAGE_HD; $smileCode = substr($smileCode, 0, strrpos($smileCode, '_hr')); } if ($pos = strpos($smileCode, '_hr_')) { $smileHR = self::IMAGE_HD; $smileCode = substr($smileCode, 0, $pos) . '_' . substr($smileCode, $pos + 4); } $arSmiles[] = array('TYPE' => $smileType, 'SET_ID' => $arParams['SET_ID'], 'CLICKABLE' => 'Y', 'SORT' => $sort, 'IMAGE' => $file, 'IMAGE_WIDTH' => intval($imgArray[0]), 'IMAGE_HEIGHT' => intval($imgArray[1]), 'IMAGE_DEFINITION' => $smileHR, 'TYPING' => ':' . (isset($smileSet['STRING_ID']) ? $smileSet['STRING_ID'] : $smileSet['ID']) . '/' . $smileCode . ':'); $sort = $sort + 5; } } } @closedir($handle); } } $importSmile = 0; foreach ($arSmiles as $smile) { $sUploadDir = ($smile['TYPE'] == CSmile::TYPE_ICON ? CSmile::PATH_TO_ICON : CSmile::PATH_TO_SMILE) . intval($smile["SET_ID"]) . '/'; if (file_exists($sUnpackDir . $smile['IMAGE']) && ($arParams['IMPORT_IF_FILE_EXISTS'] || !file_exists($_SERVER["DOCUMENT_ROOT"] . $sUploadDir . $smile['IMAGE']))) { if (CheckDirPath($_SERVER["DOCUMENT_ROOT"] . $sUploadDir)) { $insertId = CSmile::add($smile); if ($insertId) { if ($arParams['IMPORT_IF_FILE_EXISTS'] && file_exists($_SERVER["DOCUMENT_ROOT"] . $sUploadDir . $smile['IMAGE'])) { $importSmile++; } else { if (copy($sUnpackDir . $smile['IMAGE'], $_SERVER["DOCUMENT_ROOT"] . $sUploadDir . $smile['IMAGE'])) { @chmod($_SERVER["DOCUMENT_ROOT"] . $sUploadDir . $smile['IMAGE'], BX_FILE_PERMISSIONS); $importSmile++; } else { CSmile::delete($insertId); } } } $APPLICATION->ResetException(); } } } return $importSmile; }
if (strlen(${"NAME_" . $arSysLangs[$i]}) <= 0) { $strErrorMessage .= GetMessage("ERROR_NO_NAME") . " [" . $arSysLangs[$i] . "] " . $arSysLangNames[$i] . ". \n"; } } if ($ID <= 0 && (!is_set($_FILES, "IMAGE1") || strlen($_FILES["IMAGE1"]["name"]) <= 0)) { $strErrorMessage .= GetMessage("ERROR_NO_IMAGE") . ". \n"; } $strFileName = ""; if (strlen($strErrorMessage) <= 0) { $arOldSmile = false; if ($ID > 0) { $arOldSmile = CBlogSmile::GetByID($ID); } if (is_set($_FILES, "IMAGE1") && strlen($_FILES["IMAGE1"]["name"]) > 0) { $strFileName = RemoveScriptExtension($_FILES["IMAGE1"]["name"]); $strFileName = GetFileNameWithoutExtension($strFileName); $strFileExt = GetFileExtension($_FILES["IMAGE1"]["name"]); if (!in_array($strFileExt, array("jpg", "jpeg", "gif", "png"))) { $strErrorMessage .= GetMessage("FSE_ERROR_EXT") . ". \n"; } if (strlen($strErrorMessage) <= 0) { $strDirName = $_SERVER["DOCUMENT_ROOT"] . "/bitrix/images/blog/"; if ($SMILE_TYPE == "I") { $strDirName .= "icon"; } else { $strDirName .= "smile"; } $strDirName .= "/"; $strFileName = $strFileName . "." . $strFileExt; CheckDirPath($strDirName); if (file_exists($strDirName . $strFileName) && (!$arOldSmile || $arOldSmile["SMILE_TYPE"] != $SMILE_TYPE || $arOldSmile["IMAGE"] != $strFileName)) {
function simpleUploadHandler($arParams, $arResult = array()) { global $APPLICATION; $APPLICATION->RestartBuffer(); $sTmpPath = CImageUploader::SetTmpPath($_REQUEST["PackageGuid"], $arParams["PATH_TO_TMP"]); $savedData = CImageUploader::GetSavedData(); if ($savedData['SECTION_ID']) { unset($savedData['SECTION_ID']); CImageUploader::SetSavedData($savedData); } onBeforeUpload(array('pathToTmp' => $arParams["PATH_TO_TMP"], 'arParams' => $arParams, "~arResult" => $arResult, 'sessid' => bitrix_sessid(), 'packageFields' => array('photo_album_id' => $_POST['photo_album_id'], 'new_album_name' => $_POST['new_album_name'], 'photo_resize_size' => intVal($_POST['photo_resize_size'])))); $files = $_FILES['photos']; $file_count = 0; if (!empty($files)) { if (!is_array($files['name']) && is_string($files['name'])) { $files = array('name' => array($files['name']), 'type' => array($files['type']), 'tmp_name' => array($files['tmp_name']), 'error' => array($files['error']), 'size' => array($files['size'])); } $file_count = count($files['name']); } if ($arParams['WATERMARK_RULES'] == 'ALL') { $arWatermark = array('type' => strtolower($arParams['WATERMARK_TYPE']), 'position' => $arParams['WATERMARK_POSITION']); if ($arParams['WATERMARK_TYPE'] == 'TEXT') { $arWatermark['coefficient'] = $arParams['WATERMARK_SIZE']; $arWatermark['text'] = trim($arParams['WATERMARK_TEXT']); $arWatermark['font'] = trim($arParams['PATH_TO_FONT']); $arWatermark['color'] = trim($arParams['WATERMARK_COLOR']); $arWatermark['use_copyright'] = "N"; } else { $arWatermark['file'] = $arParams['WATERMARK_FILE']; $arWatermark['alpha_level'] = $arParams['WATERMARK_TRANSPARENCY']; $arWatermark['size'] = 'real'; $arWatermark['fill'] = $arParams['WATERMARK_FILE_ORDER'] == 'usual' ? 'exact' : $arParams['WATERMARK_FILE_ORDER']; } } elseif ($_POST['photo_watermark_use'] == 'Y') { $arWatermark = array('type' => $_POST['photo_watermark_type'], 'text' => $_POST['photo_watermark_text'], 'font' => $arParams['PATH_TO_FONT'], 'position' => $_POST['photo_watermark_position'], 'color' => $_POST['photo_watermark_color'], 'size' => $_POST['photo_watermark_size'], 'fill' => 'resize', 'file' => $_SERVER["DOCUMENT_ROOT"] . $_POST['photo_watermark_path'], 'alpha_level' => $_POST['photo_watermark_opacity'], 'use_copyright' => $_POST["photo_watermark_copyright"] == "Y" ? "Y" : "N"); } else { $arWatermark = array(); } $arIds = array(); for ($i = 0; $i < $file_count; $i++) { $Info = array('name' => $files['name'][$i], 'filename' => $files['name'][$i], 'description' => '', 'tags' => ''); $arFiles = array(); $name_i = $files['name'][$i]; $type_i = $files['type'][$i]; $tmp_name_i = $files['tmp_name'][$i]; $error_i = $files['error'][$i]; $size_i = $files['size'][$i]; if ($size_i > 0 && $arParams["UPLOAD_MAX_FILE_SIZE"] > 0 && $size_i > $arParams["UPLOAD_MAX_FILE_SIZE"]) { CImageUploader::SaveError(array(array("file" => $name_i, "id" => "BXPH_FUNC_HANDLE_LARGE_SIZE", "text" => GetMessage('P_WM_IMG_ERROR04')))); continue; } if ($type_i && strpos(strtolower($type_i), 'image') === false) { CImageUploader::SaveError(array(array("file" => $name_i, "id" => "BXPH_FUNC_HANDLE_TYPE", "text" => GetMessage('P_WM_IMG_ERROR02')))); continue; } $ext_i = GetFileExtension($name_i); $name_i = GetFileNameWithoutExtension($name_i); $name_i_ = preg_replace("/[^a-zA-Z0-9_]/i", "", $name_i); if ($name_i_ != $name_i) { $name_i = ($name_i_ == '' ? substr(md5(mt_rand()), 0, 6) : '') . $name_i_; } // TODO: exif, iptc //$exif = CFile::ExtractImageExif($tmp_name_i); //$iptc = CFile::ExtractImageIPTC($tmp_name_i); $thumbSize = round($arParams["THUMBNAIL_SIZE"] * 1.8); foreach ($arParams['converters'] as $key => $val) { $destPath = $sTmpPath . $name_i . "_" . $key . "." . $ext_i; if ($val["code"] == "real_picture") { $size = intVal($_POST['photo_resize_size']); if ($arParams['ORIGINAL_SIZE'] && $arParams['ORIGINAL_SIZE'] > 0 && ($arParams['ORIGINAL_SIZE'] < $size || $size <= 0)) { $size = $arParams['ORIGINAL_SIZE']; } $arSize = array('width' => $size, 'height' => $size); $jpegQuality = $arParams['JPEG_QUALITY']; } else { if ($val["code"] == "thumbnail") { $arSize = array('width' => $thumbSize, 'height' => $thumbSize); $jpegQuality = $arParams['JPEG_QUALITY1']; } else { $arSize = array('width' => intVal($val['width']), 'height' => intVal($val['height'])); } } if (!$jpegQuality || $jpegQuality < 20) { $jpegQuality = false; } $arCurWatermark = $arSize['width'] > $arParams['WATERMARK_MIN_PICTURE_SIZE'] || $arSize['height'] > $arParams['WATERMARK_MIN_PICTURE_SIZE'] ? $arWatermark : array(); $res = CFile::ResizeImageFile($tmp_name_i, $destPath, $arSize, BX_RESIZE_IMAGE_PROPORTIONAL, $arCurWatermark, $jpegQuality, array()); $arFiles[] = array('name' => $files['name'][$i], 'tmp_name' => $destPath, 'errors' => $files['error'][$i], 'type' => $files['type'][$i], 'size' => '', 'mode' => $val["code"], 'width' => '', 'height' => '', 'path' => $destPath); } $elementId = handleFile($Info, $arFiles, array('arParams' => $arParams, "~arResult" => $arResult)); if ($elementId) { $arIds[] = $elementId; } foreach ($arFiles as $arFile) { if (file_exists($arFile['tmp_name'])) { unlink($arFile['tmp_name']); } } } $jsResFiles = array(); if (count($arIds) > 0) { $rsElement = CIBlockElement::GetList(array(), array("ID" => $arIds), false, false, array("ID", "PREVIEW_PICTURE")); while ($arElement = $rsElement->Fetch()) { $arFile = CFile::GetFileArray($arElement["PREVIEW_PICTURE"]); $jsResFiles[$arFile['ORIGINAL_NAME']] = array('ID' => $arElement["ID"], 'PATH' => $arFile['SRC'], 'WIDTH' => $arFile['WIDTH'], 'HEIGHT' => $arFile['HEIGHT'], 'NAME' => $arFile['FILE_NAME']); } } $savedData = CImageUploader::GetSavedData(); if ($savedData['NEW_SECTION_NAME'] && $savedData['SECTION_ID'] > 0) { $newSectionName = $savedData['NEW_SECTION_NAME']; unset($savedData['NEW_SECTION_NAME']); CImageUploader::SetSavedData($savedData); } onAfterUpload(array('arParams' => $arParams, "~arResult" => $arResult)); // Update redirect url $REDIRECT_URL = CComponentEngine::MakePathFromTemplate($arParams["~SECTION_URL"], array("USER_ALIAS" => $arParams["USER_ALIAS"], "SECTION_ID" => $savedData["SECTION_ID"])); //$REDIRECT_URL = $REDIRECT_URL.(strpos($REDIRECT_URL, "?") === false ? "?" : "&")."uploader_redirect=Y&sessid=".bitrix_sessid(); ?> <script>top.bxiu_simple_res = { error: <?php echo $savedData['arError'] && count($savedData['arError']) > 0 ? CUtil::PhpToJSObject($savedData['arError']) : '""'; ?> , files: <?php echo CUtil::PhpToJSObject($jsResFiles); ?> , redirectUrl: '<?php echo CUtil::JSEscape($REDIRECT_URL); ?> ' <?php if (!empty($newSectionName)) { ?> ,newSection: { id: <?php echo intVal($savedData['SECTION_ID']); ?> , title: '<?php echo CUtil::JSEscape($newSectionName); ?> ' } <?php } ?> };</script> <?php $savedData['arError'] = array(); CImageUploader::SetSavedData($savedData); die; }
function CheckImageFile($arFile, $iMaxSize=0, $iMaxWidth=0, $iMaxHeight=0, $access_typies=array()) { if(strlen($arFile["name"])<=0) return ""; if(GetFileNameWithoutExtension(RemoveScriptExtension($arFile["name"])) == '') return GetMessage("FILE_BAD_FILENAME"); $file_type = GetFileType($arFile["name"]); // если тип файла не входит в массив допустимых типов то // присваиваем ему тип IMAGE по умолчанию if(!in_array($file_type, $access_typies)) $file_type = "IMAGE"; switch ($file_type) { case "FLASH": $res = CFile::CheckFile($arFile, $iMaxSize, "application/x-shockwave-flash", CFile::GetFlashExtensions()); break; default: $res = CFile::CheckFile($arFile, $iMaxSize, "image/", CFile::GetImageExtensions()); } if(strlen($res)>0) return $res; $imgArray = CFile::GetImageSize($arFile["tmp_name"]); if(is_array($imgArray)) { $intWIDTH = $imgArray[0]; $intHEIGHT = $imgArray[1]; } else return GetMessage("FILE_BAD_FILE_TYPE").".<br>"; //проверка на максимальный размер картинки (ширина/высота) if($iMaxWidth > 0 && ($intWIDTH > $iMaxWidth || $intWIDTH == 0) || $iMaxHeight > 0 && ($intHEIGHT > $iMaxHeight || $intHEIGHT == 0)) return GetMessage("FILE_BAD_MAX_RESOLUTION")." (".$iMaxWidth." * ".$iMaxHeight." ".GetMessage("main_include_dots").").<br>"; return null; }
protected function validateFile($strFileName, $arFile) { if ($strFileName == '') { return GetMessage("FILE_BAD_FILENAME"); } $io = CBXVirtualIo::GetInstance(); if (!$io->ValidateFilenameString($strFileName)) { return GetMessage("MAIN_BAD_FILENAME1"); } if (strlen($strFileName) > 255) { return GetMessage("MAIN_BAD_FILENAME_LEN"); } //check .htaccess etc. if (IsFileUnsafe($strFileName)) { return GetMessage("FILE_BAD_TYPE"); } //nginx returns octet-stream for .jpg if (GetFileNameWithoutExtension($strFileName) == '') { return GetMessage("FILE_BAD_FILENAME"); } if (COption::GetOptionInt("main", "disk_space") > 0) { $quota = new CDiskQuota(); if (!$quota->checkDiskQuota($arFile)) { return GetMessage("FILE_BAD_QUOTA"); } } return ""; }
protected function recoverExtensionInName(array &$fileData, $mimeType) { $originalExtension = strtolower(trim(CWebDavIblock::getExtensionByMimeType($mimeType), '.')); $newExtension = strtolower(trim(GetFileExtension($fileData['name']), '.')); if ($originalExtension != $newExtension) { $fileData['name'] = GetFileNameWithoutExtension($fileData['name']) . '.' . $originalExtension; return true; } return false; }
protected function saveNewFile(array $fileData) { $filename = CTempFile::GetFileName(uniqid('_wd')); CheckDirPath($filename); $doc = $this->getDocHandler()->downloadFile(array('id' => $this->getFileId(), 'mimeType' => $this->getWebdav()->get_mime_type('1.' . $fileData['createType']))); file_put_contents($filename, $doc['content']); global $USER; $dataUserSection = CWebDavIblock::getRootSectionDataForUser($USER->GetID()); if (!$dataUserSection) { return array('status' => 'error'); } $createdDocFolderId = CIBlockWebdavSocnet::createCreatedDocFolder($dataUserSection['IBLOCK_ID'], $dataUserSection['SECTION_ID'], $USER->GetID()); if (!$createdDocFolderId) { return array('status' => 'error'); } $storage = new CWebDavStorageCore(); $storage->setStorageId(array('IBLOCK_ID' => $dataUserSection['IBLOCK_ID'], 'IBLOCK_SECTION_ID' => $dataUserSection['SECTION_ID'])); $nameToSavedFile = $storage->regenerateNameIfNonUnique($doc['name'], $createdDocFolderId); $tmpFile = new CWebDavStubTmpFile(); $tmpFile->path = $filename; try { $fileData = $storage->addFile($nameToSavedFile, $createdDocFolderId, $tmpFile); $response = array('status' => 'success', 'elementId' => $fileData['extra']['id'], 'sectionId' => $fileData['extra']['sectionId'], 'name' => $nameToSavedFile, 'sizeInt' => $fileData['size'], 'type' => CWebDavBase::get_mime_type($nameToSavedFile), 'link' => str_replace('#element_id#', $fileData['extra']['id'], CWebDavSocNetEvent::getRuntime()->arPath['ELEMENT_EDIT_INLINE_URL']), 'nameWithoutExtension' => GetFileNameWithoutExtension($nameToSavedFile)); } catch (Exception $e) { $response = array('status' => 'error'); } return $response; }