Example #1
0
 public static function SaveAllUploadedFiles($uploadedFiles)
 {
     try {
         $packageFields = $uploadedFiles[0]->getPackage()->getPackageFields();
         // We call 'onBeforeUpload' only once and if exists handler
         if (isset(self::$uploadCallbackParams['onBeforeUpload']) && self::$PackageGuid != $packageFields['PackageGuid']) {
             self::$PackageGuid = $packageFields['PackageGuid'];
             self::$uploadCallbackParams['packageFields'] = $packageFields;
             if (!call_user_func(self::$uploadCallbackParams['onBeforeUpload'], self::$uploadCallbackParams)) {
                 return;
             }
         }
         foreach ($uploadedFiles as $uploadedFile) {
             try {
                 $convertedFiles = $uploadedFile->getConvertedFiles();
                 if (count($convertedFiles) <= 0) {
                     CImageUploader::SaveError(array(array("id" => "BXUPL_FLASH_TYPE_1", "text" => GetMessage('P_BXUPL_FLASH_TYPE_1'))));
                     continue;
                 }
                 $arFiles = array();
                 foreach ($convertedFiles as $j => $convertedFile) {
                     $path = self::$sTmpPath . "_" . $j . ".tmp";
                     $convertedFile->moveTo($path);
                     $arFiles[] = array('name' => $convertedFile->getName(), 'tmp_name' => $path, 'errors' => 0, 'type' => self::GetMimeType($convertedFile->getName()), 'size' => $convertedFile->getSize(), 'mode' => $convertedFile->getMode(), 'height' => $convertedFile->getHeight(), 'width' => $convertedFile->getWidth(), 'path' => $path);
                 }
                 $name = $packageFields['Title_' . $uploadedFile->getIndex()];
                 $fileName = $uploadedFile->getSourceName();
                 if ($name == "") {
                     $name = $fileName;
                 }
                 $Info = array('name' => $name, 'filename' => $fileName, 'description' => $uploadedFile->getDescription(), 'tags' => $uploadedFile->getTag());
                 call_user_func(self::$uploadCallbackFunc, $Info, $arFiles, self::$uploadCallbackParams);
             } catch (Exception $e) {
                 CImageUploader::SaveError(array(array("id" => "BXUPL_FLASH_SAVE_1", "text" => $e->getMessage)));
             }
         }
         if (isset(self::$uploadCallbackParams['onAfterUpload'])) {
             call_user_func(self::$uploadCallbackParams['onAfterUpload'], self::$uploadCallbackParams);
         }
     } catch (Exception $e) {
         CImageUploader::SaveError(array(array("id" => "BXUPL_FLASH_SAVE_2", "text" => $e->getMessage)));
     }
 }
Example #2
0
}
/********************************************************************
				/Data
********************************************************************/
/********************************************************************
				For custom components
********************************************************************/
foreach ($arResult["URL"] as $key => $val) {
    $arResult[$key . "_LINK"] = $val;
}
/********************************************************************
/For custom components
********************************************************************/
CUtil::InitJSCore(array('window', 'ajax'));
// Clean saved data before show
CImageUploader::CleanSavedData();
$oPhoto::CheckUploaderType($arParams["UPLOADER_TYPE"]);
$this->IncludeComponentTemplate();
/********************************************************************
				Standart
********************************************************************/
/************** Title **********************************************/
if ($arParams["SET_TITLE"] != "N") {
    $APPLICATION->SetTitle(GetMessage("P_TITLE"));
}
/************** Breadcrumb *****************************************/
if ($arParams["SET_NAV_CHAIN"] == "Y") {
    $bFound = $arParams["BEHAVIOUR"] != "USER";
    foreach ($arResult["SECTION"]["PATH"] as $arPath) {
        if (!$bFound) {
            $bFound = $arResult["GALLERY"]["ID"] == $arPath["ID"];
Example #3
0
				<?php 
    }
    /* END Resize image on uploading block*/
    ?>
		</div>
		<?php 
}
/* END Additional section*/
?>
	</div>
</div>
<?php 
/* ************** Select uploader type ************** */
if ($arParams['UPLOADER_TYPE'] == 'applet' && $arParams["VIEW_MODE"] == "applet") {
    /* Show Image Uploader */
    CImageUploader::ShowScript(array('id' => $arParams['UPLOADER_ID'], 'layout' => $arParams['APPLET_LAYOUT'] == 'simple' ? 'OnePane' : 'ThreePanes', 'folderViewMode' => 'Thumbnails', 'uploadViewMode' => 'Tiles', 'height' => $arParams["UPLOADER_HEIGHT"] . 'px', 'folderPaneHeight' => round($arParams["UPLOADER_HEIGHT"] / 2), 'enableCrop' => true, 'cropRatio' => '0.75', 'cropMinSize' => '150', 'fileMask' => '*.jpg;*.jpeg;*.png;*.gif;*.bmp', 'actionUrl' => $arParams["ACTION_URL"], 'redirectUrl' => $arParams["REDIRECT_URL"], 'appendFormName' => $arParams["UPLOADER_ID"] . '_form', 'showAddFileButton' => $arParams['APPLET_LAYOUT'] == 'simple', 'showAddFolderButton' => $arParams['APPLET_LAYOUT'] == 'simple', 'filesPerPackage' => 2, 'converters' => $arParams['converters'], 'maxFileSize' => $arResult["UPLOAD_MAX_FILE_SIZE"], 'pathToTmp' => $arParams["PATH_TO_TMP"], 'useWatermark' => true, 'watermarkConfig' => array('values' => array('use' => $arWatermark['use'], 'type' => $arWatermark['type'], 'text' => $arWatermark['text'], 'color' => $arWatermark['color'], 'position' => $arWatermark['position'], 'size' => $arWatermark['size'], 'opacity' => $arWatermark['opacity'], 'file' => $arWatermark['file']), 'rules' => $arParams["WATERMARK_RULES"], 'type' => $arParams['WATERMARK_TYPE'], 'text' => $arParams['WATERMARK_TEXT'], 'color' => $arParams['WATERMARK_COLOR'], 'position' => $arParams['WATERMARK_POSITION'], 'size' => $arParams['WATERMARK_SIZE'], 'opacity' => $arParams['WATERMARK_TRANSPARENCY'], 'file' => $arParams['WATERMARK_FILE_REL'], 'fileWidth' => $arWatermark["fileWidth"], 'fileHeight' => $arWatermark["fileHeight"])));
    ?>

<?php 
} elseif ($arParams['UPLOADER_TYPE'] == 'flash' && $arParams["VIEW_MODE"] == "applet") {
    /*Show Flash uploader*/
    ?>

<?php 
    CFlashUploader::ShowScript(array('id' => $arParams['UPLOADER_ID'], 'height' => $arParams["UPLOADER_HEIGHT"] . 'px', 'fileMask' => "[['*.jpg; *.jpeg; *.png; *.gif; *.bmp', '*.jpg;*.jpeg;*.png;*.gif;*.bmp'], ['*.*','*.*']]", 'actionUrl' => $arParams["ACTION_URL"], 'redirectUrl' => $arParams["REDIRECT_URL"], 'appendFormName' => $arParams["UPLOADER_ID"] . '_form', 'converters' => $arParams['converters'], 'maxFileSize' => $arResult["UPLOAD_MAX_FILE_SIZE"], 'pathToTmp' => $arParams["PATH_TO_TMP"]));
    ?>

<?php 
} else {
    /* Simple uploader in form*/
    ?>
Example #4
0
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;
}
Example #5
0
			<a class="bxiu-mode-link" href="<?php 
    echo $arParams["SIMPLE_FORM_URL"];
    ?>
"><?php 
    echo GetMessage("P_SHOW_FORM");
    ?>
</a>
		</div><?php 
    echo $htmlSettings;
    ?>
	</div>
</div>
</form>
<?php 
    if ($arParams["UPLOADER_TYPE"] == "applet") {
        CImageUploader::ShowScript(array("id" => $arParams["UPLOADER_ID"], "layout" => $arParams["APPLET_LAYOUT"] == "simple" ? "OnePane" : "ThreePanes", "folderViewMode" => "Thumbnails", "uploadViewMode" => "Tiles", "height" => $arParams["UPLOADER_HEIGHT"] . "px", "folderPaneHeight" => round($arParams["UPLOADER_HEIGHT"] / 2), "thumbnailJpegQuality" => $arParams["JPEG_QUALITY"], "enableCrop" => true, "cropRatio" => "0.75", "cropMinSize" => "150", "fileMask" => "*.jpg;*.jpeg;*.png;*.gif;*.bmp", "actionUrl" => $arParams["ACTION_URL"], "redirectUrl" => $arParams["REDIRECT_URL"], "appendFormName" => $arParams["UPLOADER_ID"] . "_form", "showAddFileButton" => $arParams["APPLET_LAYOUT"] == "simple", "showAddFolderButton" => $arParams["APPLET_LAYOUT"] == "simple", "filesPerPackage" => 2, "converters" => $arParams["converters"], "maxFileSize" => $arResult["UPLOAD_MAX_FILE_SIZE"], "pathToTmp" => $arParams["PATH_TO_TMP"], "useWatermark" => true, "watermarkConfig" => array("values" => array("use" => $arWatermark["use"], "type" => $arWatermark["type"], "text" => $arWatermark["text"], "color" => $arWatermark["color"], "position" => $arWatermark["position"], "size" => $arWatermark["size"], "opacity" => $arWatermark["opacity"], "file" => $arWatermark["file"]), "rules" => $arParams["WATERMARK_RULES"], "type" => $arParams["WATERMARK_TYPE"], "text" => $arParams["WATERMARK_TEXT"], "color" => $arParams["WATERMARK_COLOR"], "position" => $arParams["WATERMARK_POSITION"], "size" => $arParams["WATERMARK_SIZE"], "opacity" => $arParams["WATERMARK_TRANSPARENCY"], "file" => $arParams["WATERMARK_FILE_REL"], "fileWidth" => $arWatermark["fileWidth"], "fileHeight" => $arWatermark["fileHeight"])));
    } else {
        CFlashUploader::ShowScript(array("id" => $arParams["UPLOADER_ID"], "height" => $arParams["UPLOADER_HEIGHT"] . "px", "fileMask" => "[['*.jpg; *.jpeg; *.png; *.gif; *.bmp', '*.jpg;*.jpeg;*.png;*.gif;*.bmp'], ['*.*','*.*']]", "actionUrl" => $arParams["ACTION_URL"], "redirectUrl" => $arParams["REDIRECT_URL"], "appendFormName" => $arParams["UPLOADER_ID"] . "_form", "converters" => $arParams["converters"], "maxFileSize" => $arResult["UPLOAD_MAX_FILE_SIZE"], "pathToTmp" => $arParams["PATH_TO_TMP"], "thumbnailJpegQuality" => $arParams["JPEG_QUALITY"]));
    }
}
if ($arParams["ORIGINAL_SIZE"] || $arResult["UPLOAD_MAX_FILE_SIZE_MB"] && $arParams["ALLOW_UPLOAD_BIG_FILES"] != "Y" || $arParams["MODERATION"] == "Y") {
    ?>
<div class="bxiu-notice <?php 
    echo $arParams["VIEW_MODE"] == "applet" ? "bxiu-notice-applet" : "bxiu-notice-form";
    ?>
">
<?php 
    if ($arParams["MODERATION"] == "Y") {
        ?>
	<p><?php 
        echo GetMessage("P_MODERATION_NITICE");