Создание средства поиска для файла отличается отличается от обычного средства поиска. Попробуем вывести поле и кнопку следующего вида:
Пропишем на странице код, для создания кнопки.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
<%@page language="abap" %> <%@extension name="thtmlb" prefix="thtmlb" %> <%@extension name="chtmlb" prefix="chtmlb" %> <%@extension name="bsp" prefix="bsp" %> <chtmlb:config mode = "RUNTIME" xml = "<%= controller->configuration_descr->get_config_data( ) %>" /> <chtmlb:configGrid columnSize="8" rowSize="3" width="100%"> <chtmlb:configGridCell colSpan="2" columnIndex="2" rowIndex="1" rowSpan="1" > <thtmlb:label id = "upload_label" for = "upload" design = "LABELRIGHT" text = "Имя файла" /> </chtmlb:configGridCell> <chtmlb:configGridCell colSpan="5" columnIndex="4" rowIndex="1" rowSpan="1" > <% DATA lr_fupload TYPE REF TO cl_thtmlb_fileupload. CALL METHOD cl_thtmlb_fileupload=>factory EXPORTING id = 'upload' size = '90' USAGE = CL_THTMLB_FILEUPLOAD=>GC_USAGE_CELLERATOR RECEIVING element = lr_fupload. FIELD-SYMBOLS <lv_multiple> TYPE string. ASSIGN lr_fupload->('multiple') TO <lv_multiple>. IF <lv_multiple> IS ASSIGNED. <lv_multiple> = 'true'. ENDIF. WHILE page_context->element_process( element = lr_fupload ) EQ if_bsp_element=>co_element_continue. ENDWHILE. %> </chtmlb:configGridCell> </chtmlb:configGrid> |
Мне нужен файл при нажатии кнопки отправить. Добавим код создания кнопки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<thtmlb:grid cellSpacing = "1" columnSize = "8" height = "30%" rowSize = "6" width = "100%" > <thtmlb:gridCell colSpan = "8" columnIndex = "1" horizontalAlignment = "LEFT" rowIndex = "1" > <thtmlb:button id = "SEND" onClick = "SEND" text = "Обработать" /> </thtmlb:gridCell> </thtmlb:grid> |
У вас может быть какое-то другое место.
Зайдем в обработчик события SEND (EH_ONSEND) и пропишем следующий код
1 2 3 4 5 6 7 8 9 10 11 12 |
DATA(lv_upload) = |{ me->component_id }_upload|. DATA lo_upload TYPE REF TO cl_thtmlb_fileupload. lo_upload ?= cl_htmlb_manager=>get_data( request = runtime->server->request name = 'thtmlb:fileUpload' id = lv_upload ). DATA(lv_file_name) = lo_upload->file_name. DATA(lv_file_content) = lo_upload->file_content. DATA(lv_file_length) = lo_upload->file_length. DATA(lv_file_content_type) = lo_upload->file_content_type. |
Тут все понятно, получаем выбранный файл в формате XSTRING и его свойства.
Также можно посмотреть компонент GS_CM
Нашел здесь