Erscheinungsbild
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
| Attribut | Beschreibung | Default |
|---|---|---|
controlId | Eindeutige ID | automatisch generiert |
text | Button-Text | Upload |
icon | SAP-Icon | sap-icon://upload |
accept | MIME-Filter (z.B. image/*, application/pdf) | – |
multiple | Mehrere Dateien | false |
enabled | Aktiv | true |
visible | Sichtbar | true |
spanS / spanM / spanL / spanXL | Grid-Layout | 12 |
ABAP-API
Zugriff über me->get_upload( '<controlId>' ).
| Methode | Zweck |
|---|---|
GET_DATA | Liefert die hochgeladene Datei als data:<mime>;base64,... |
GET_FILE_NAME | Originaler Dateiname |
GET_FILE_SIZE | Dateigröße in Bytes |
GET_MIME_TYPE | MIME-Typ (z.B. image/png) |
INIT | Daten leeren |
Geerbte Methoden: siehe Control.
Beispiel: /mobbuild/cl_ex_upload
Das Beispiel liest die hochgeladene Datei und zeigt sie in einem Image-Control 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.
Größenlimit
Da die Datei als Base64-String über den Designer-Channel transportiert wird, sollten Sie ein Limit setzen. Dateien > ~5 MB sind in der Regel nicht praktikabel und sollten alternativ über einen RFC-/oData-Channel hochgeladen werden.
Events im Designer
Kein Backend-Event (on_pai). Die ausgewählte Datei wird intern in den Wert des Controls gelesen (Base64-Daten-URL) und beim nächsten regulären Event/PBO serverseitig ausgewertet.
Nächste Schritte
- Image – Anzeige hochgeladener Bilder
- SignaturePad – Bild aus Unterschrift erzeugen