Skip to content

Upload ​

Erlaubt dem Anwender, eine Datei vom Endgerät hochzuladen. Die Datei wird als Daten-URL im Base64-Format an die ABAP-Schicht übergeben und kann z.B. in einem Image angezeigt oder als XSTRING im SAP-System gespeichert werden.

Designer-Attribute ​

AttributBeschreibungDefault
controlIdEindeutige IDautomatisch generiert
widthBreite (CSS-Wert)–
placeholderPlatzhaltertext bei leerem Feld–
buttonOnlyNur den Button anzeigen, kein Eingabefeldfalse
buttonTextBeschriftung des Buttons–
iconSAP-Icon–
iconOnlyNur das Icon anzeigenfalse
iconFirstIcon vor (true) oder hinter (false) dem Texttrue
fileTypeErlaubte Dateiendungen (kommagetrennt, ohne Punkt)–
fileTypeErrorTextMeldung bei nicht erlaubter DateiendungThis file type is not supported
transferModeÜbertragung der Datei an das Backend. Werte: Base64Base64
visibleSichtbartrue
spanS / spanM / spanL / spanXLGrid-Layout12

ABAP-API ​

Zugriff über me->get_upload( '<controlId>' ).

MethodeZweck
GET_DATALiefert die hochgeladene Datei als data:<mime>;base64,...
INITDaten leeren
GET_FILE_TYPE_ERROR / SET_FILE_TYPE_ERRORMeldung bei falschem Dateityp
GET_FILENAME / SET_FILENAMEDateiname
GET_WIDTH / SET_WIDTHBreite

Geerbte Methoden: siehe Control.

Beispiel: /mobbuild/cl_ex_upload ​

Das Beispiel liest die hochgeladene Datei und zeigt sie in einer Image-Komponente an:

abap
METHOD on_pai.

  DATA(lo_image)  = me->get_image( 'image' ).
  DATA(lo_upload) = me->get_upload( 'uploader' ).

  DATA(lv_data_url_base_64) = lo_upload->get_data( ).
  lo_image->set_src( lv_data_url_base_64 ).

ENDMETHOD.

METHOD on_pbo.

  me->init_controls( ).
  me->get_image( 'image' )->set_src( space ).

ENDMETHOD.

Datei im SAP-System speichern

Der Rückgabewert von get_data() ist eine Daten-URL der Form data:<mime>;base64,.... Trennen Sie den Präfix ab und konvertieren Sie den Base64-Anteil mit cl_http_utility=>decode_x_base64() in ein XSTRING. Damit lässt sich die Datei z.B. in einer kundeneigenen Tabelle als BLOB ablegen.

Beispiel und Tipp gelten für On-Prem. In der S/4HANA Cloud tragen die Framework-Klassen das Präfix zmobbuild_ statt des Namensraums /mobbuild/, und es stehen nur freigegebene APIs zur Verfügung – siehe Unterschiede zu On-Prem und Mobile-Builder-API in der Cloud.

Größenlimit

Da die Datei als Base64-String im Request der App an das Backend transportiert wird, sollten Sie ein Limit setzen. Dateien > ~5 MB sind in der Regel nicht praktikabel und sollten alternativ über eine RFC-/OData-Schnittstelle hochgeladen werden.

Nächste Schritte ​

  • Image – Anzeige hochgeladener Bilder
  • SignaturePad – Bild aus Unterschrift erzeugen