FileUpload 
Das FileUpload-Oberflächenelement dient dazu, Dateien vom Client auf den Server hochzuladen. Das Oberflächenelement wird mit einem InputField, in welchem der Verzeichnispfad und der Name der Datei angezeigt wird, und einem Button zum Suchen der Datei dargestellt.
Achtung
Beachten Sie, dass bei einem FileUpload-UI-Element immer der voll qualifizierte Pfad angegeben werden muss. Sie können also keine URLs angeben.
Weitere Informationen:: http://support.microsoft.com/kb/892442/en-us
|
Aufgrund von Browser-Restriktionen, auf die Web Dynpro ABAP keinerlei Einfluss hat, kann es sein, dass beim Anklicken eines FileUpload UI-Elements der vorher angegebene Dateipfad verschwindet. Bei neueren Browser-Versionen ist es daher unmöglich, den Dateinamen in das Eingabefeld zurück zu schreiben, das Feld bleibt immer leer. Auch mögliche Einschränkungen für beispielsweise Dateinamen oder Dateinamenserweiterungen werden nicht angezeigt. Die Auswahl des Dateinamens ist also bei neueren Browser-Versionen ausschließlich über den Browse...-Schalter möglich; d.h. weder die manuelle Eingabe eines Dateinamens (über Tastatur, Copy&Paste...) noch das Setzen des Dateinamens vom Backend aus (direkt oder via Context-Binding) ist möglich.
Lesen Sie hierzu alle Sicherheits-relevanten Informationen des Internet Explorer 6 über das Handling von <input type=file>.
Der Browser akzeptiert also aus Sicherheitsgründen nur absolute Pfadangaben oder eine Pfadauswahl über den Browse... Schalter. Bei falschen Pfadangaben wird der Request vom Browser erst gar nicht weitergeleitet.
Es gibt keine Action, um einen FileUpload zu erkennen. Generell empfiehlt es sich, für den Upload einen dedizierten Screen oder ein Popup zu verwenden, da ein Upload durch jede Benutzerinteraktion, die einen Roundtrip erfordert, ausgelöst wird, z.B. auch durch Blättern einer Tabelle, und dies zu Irritation des Benutzers führen kann.
Prüfen Sie bei jeder Action, ob Daten hochgeladen wurden, indem Sie die Daten aus dem Context lesen.
Löschen Sie die Daten danach gleich aus dem Context. Andernfalls würde die Datei bis zum Abbau des Contexts oder einem erneuten Upload im Speicher gehalten.
Bei der Kopie von XSTRING zu XSTRING wird aufgrund des ABAP-String-Sharings keine Kopie der Daten erstellt. Eine Kopie entsteht erst, wenn die Daten in einem der XSTRINGs modifiziert werden.
Laufzeit-Klasse |
CL_WD_FILE_UPLOAD |
Name |
Typ |
Anfangswert |
Bindbar |
|---|---|---|---|
STRING |
(automatisch) |
nein |
|
WDY_BOOLEAN |
false |
nein |
|
WDUI_CONTEXT_MENU_BEHAVIOUR |
inherit |
nein |
|
WDY_MD_UI_ELEMENT_REFERENCE |
nein |
||
XSTRING |
ja |
||
WDY_BOOLEAN |
true |
ja |
|
Übersetzbarer Text |
nein |
||
STRING |
ja |
||
STRING |
ja |
||
WDUI_STATE |
normal |
ja |
|
WDUI_TEXT_DIRECTION |
inherit |
ja |
|
Übersetzbarer Text |
ja |
||
VSCAN_PROFILE |
ja |
||
WDUI_VISIBILITY |
visible |
ja |
|
STRING |
ja |
Weitere Eigenschaften, die über Vererbung zur Verfügung stehen, sind in den dazugehörigen übergeordneten Klassen definiert. Die dazugehörigen Oberflächenelemente sind:
Um die Entwicklung barrierefreier Anwendungen zu ermöglichen, wird im Rahmen des Syntaxchecks die Eigenschaft label überprüft.
Wenn kein label gesetzt wurde und auch für das entsprechende gebundene Context-Element im ABAP-Dictionary kein Beschreibungstext angegeben wurde, findet eine Überprüfung auf die Eigenschaft tooltip statt.
Für die dynamische Programmierung stehen dieselben Eigenschaften, Ereignisse und Aggregationen zur Verfügung wie im View Designer. Beachten Sie dabei die unterschiedlichen Schreibweisen.
View Designer Name |
Laufzeitname |
Typ |
|---|---|---|
ACTIVATE_ACCESS_KEY |
WDY_BOOLEAN |
|
CONTEXT_MENU_BEHAVIOUR |
WDUI_CONTEXT_MENU_BEHAVIOUR |
|
contextMenuBehaviour: inherit |
CL_WD_FILE_UPLOAD=>E_CONTEXT_MENU_BEHAVIOUR-INHERIT |
|
contextMenuBehaviour: provide |
CL_WD_FILE_UPLOAD=>E_CONTEXT_MENU_BEHAVIOUR-PROVIDE |
|
contextMenuBehaviour: suppress |
CL_WD_FILE_UPLOAD=>E_CONTEXT_MENU_BEHAVIOUR-SUPPRESS |
|
CONTEXT_MENU_ID |
WDY_MD_UI_ELEMENT_REFERENCE |
|
DATA |
XSTRING |
|
ENABLED |
WDY_BOOLEAN |
|
EXPLANATION |
WDY_MD_TRANSLATABLE_TEXT |
|
FILE_NAME |
STRING |
|
MIME_TYPE |
STRING |
|
STATE |
WDUI_STATE |
|
state: normal |
CL_WD_FILE_UPLOAD=>E_STATE-NORMAL |
|
state: required |
CL_WD_FILE_UPLOAD=>E_STATE-REQUIRED |
|
TEXT_DIRECTION |
WDUI_TEXT_DIRECTION |
|
textDirection: inherit |
CL_WD_FILE_UPLOAD=>E_TEXT_DIRECTION-INHERIT |
|
textDirection: ltr |
CL_WD_FILE_UPLOAD=>E_TEXT_DIRECTION-LTR |
|
textDirection: rtl |
CL_WD_FILE_UPLOAD=>E_TEXT_DIRECTION-RTL |
|
TOOLTIP |
WDY_MD_TRANSLATABLE_TEXT |
|
VIRUS_SCAN_PROFILE |
VSCAN_PROFILE |
|
VISIBLE |
WDUI_VISIBILITY |
|
visible: none |
CL_WD_FILE_UPLOAD=>E_VISIBLE-NONE |
|
visible: visible |
CL_WD_FILE_UPLOAD=>E_VISIBLE-VISIBLE |
|
WIDTH |
STRING |
|
Test-Beispiele für dieses Oberflächenelement finden Sie im System in der Web-Dynpro-Applikation WDR_TEST_UI_ELEMENTS sowie in der Component WDR_TEST_EVENTS in der View FileUpload.