Документация для разработчиков
Темная тема

GetFileField

Описание и параметры

string
CForm::GetFileField(
 int answer_id,
 mixed width = "",
 string file_type = "IMAGE",
 int max_file_size = 0,
 mixed file_id = "",
 string add_to_file = "class=\"inputfile\"",
 string add_to_checkbox = "class=\"inputcheckbox\"",
)

Возвращает HTML код поля для загрузки файла. Данное поле предназначено для ввода ответа типа "image" или "file".

Метод может использоваться как в форме создания нового результата, так и в форме редактирования существующего. Метод нестатический.

Примечание
Имя результирующего HTML поля будет сформировано по следующей маске:
form_file_type_answer_id

Параметры метода

Параметр Описание С версии
answer_id ID ответа.
width Ширина результирующего поля для ввода файла:
<input type="file" size="width" ...>

Параметр необязательный. По умолчанию - "".
file_type Тип файла, допустимы следующие значения:
  • IMAGE - изображение;
  • FILE - произвольный файл.
Параметр необязательный. По умолчанию - "IMAGE" (изображение).
max_file_size Максимальный размер загружаемого файла (в байтах).

Параметр необязательный. По умолчанию - 0 (без ограничений).
file_id ID загруженного (редактируемого) файла.

Параметр необязательный. По умолчанию - "".
add_to_file Произвольный HTML, который будет добавлен в HTML тег поля для загрузки файла:
<input type="file" add_to_file ...>

Параметр необязательный. По умолчанию - "class=\"inputfile\"".
3.3.10
add_to_checkbox Произвольный HTML, который будет добавлен в HTML тег флага удаления редактируемого файла:
<input type="checkbox" add_to_checkbox ...>

Параметр необязательный. По умолчанию - "class=\"inputcheckbox\"".
3.3.10
PARAM_TEXT Необязательный параметр. Удален с версии 4.0.4 3.3.10

Смотрите также

Примеры использования

<?
/*******************************************
       Редактирование результата
*******************************************/

$RESULT_ID = 12; // ID результата
?>
<form action="" method="POST">
<table>
    <tr>
        <td>Фотография:</td>
        <td><?

            /************************************************************
                                    Изображение
            ************************************************************/

            // массив описывающий поле ответа
            // содержит минимально-необходимые поля
            $arAnswer = array(
                "ID"            => 607,   // ID поля для ответа на вопрос "Фотография"
                "FIELD_WIDTH"   => 10,    // ширина поля
                "FIELD_PARAM"   => ""     // параметры поля
                );

            // попробуем получить параметры загруженного файла
            if ($arFile = CFormResult::GetFileByAnswerID($RESULT_ID, $arAnswer["ID"])):
                // если файл был получен то
                if (intval($arFile["USER_FILE_ID"])>0):
                    // если это изображение то
                    if ($arFile["USER_FILE_IS_IMAGE"]=="Y") :
                        // выведем изображение
                        echo CFile::ShowImage(
                            $arFile["USER_FILE_ID"], 
                            0, 
                            0, 
                            "border=0", 
                            "", 
                            true);
                    endif;
                    echo "<br><br>"; 
                endif;
            endif;

            // выведем поле для ввода файла
            echo CForm::GetFileField(
                $arAnswer["ID"],
                $arAnswer["FIELD_WIDTH"],
                "IMAGE",
                0,  // максимальный размер файла не ограничен
                $arFile["USER_FILE_ID"],
                $arAnswer["FIELD_PARAM"]);

            ?></td>
    </tr>
    <tr>
        <td>Резюме:</td>
        <td><?

            /************************************************************
                                Произвольный файл
            ************************************************************/

            // массив описывающий поле ответа
            // содержит минимально-необходимые поля
            $arAnswer = array(
                "ID"            => 610,   // ID поля для ответа на вопрос "Резюме"
                "FIELD_WIDTH"   => 10,    // ширина поля
                "FIELD_PARAM"   => ""     // параметры поля
                );

            // попробуем получить параметры загруженного файла
            if ($arFile = CFormResult::GetFileByAnswerID($RESULT_ID, $arAnswer["ID"])):
                // если файл был получен то
                if (intval($arFile["USER_FILE_ID"])>0):

                    // выведем информацию о файле
                    ?>
                    
                    <a title="Просмотр файла" target="_blank" class="tablebodylink" href="/bitrix/tools/form_show_file.php?rid=<?=$result_id?>&hash=<?echo $arFile["USER_FILE_HASH"]?>〈=<?=LANGUAGE_ID?>"><?=htmlspecialchars($arFile["USER_FILE_NAME"])?></a>
                    &nbsp;
                    (<?
                    $a = array("b", "Kb", "Mb", "Gb");
                    $pos = 0;
                    $size = $arFile["USER_FILE_SIZE"];
                    while($size>=1024) {$size /= 1024; $pos++;}
                    echo round($size,2)." ".$a[$pos];
                    ?>)
                    &nbsp;&nbsp;
                    [&nbsp;<a title="<?echo str_replace("#FILE_NAME#", $arFile["USER_FILE_NAME"], "Скачать")?>" class="tablebodylink" href="/bitrix/tools/form_show_file.php?rid=<?=$result_id?>&hash=<?echo $arFile["USER_FILE_HASH"]?>〈=<?=LANGUAGE_ID?>&action=download">Скачать</a>&nbsp;]
                    <br><br>
                    
                    <?
                endif;
            endif;

            // выведем поле для ввода файла
            echo CForm::GetFileField(
                $arAnswer["ID"],
                $arAnswer["FIELD_WIDTH"],
                "FILE",
                0,  // максимальный размер файла не ограничен
                $arFile["USER_FILE_ID"],
                $arAnswer["FIELD_PARAM"]);

            ?></td>
    </tr>
</table>
<input type="submit" name="save" value="Сохранить">
</form>


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2021, «1С-Битрикс», 2021
Наверх