Anfang des Inhaltsbereichs

Funktionsdokumentation File-Upload und Manipulation des Content  Dokument im Navigationsbaum lokalisieren

Verwendung

Neben dem reinen File-Upload kann es auch Szenarien geben, bei denen Sie erst eine Datei vom Browser aus hochladen und danach den Inhalt dieser Datei verändern möchten. Beispielsweise möchten Sie ein Bestellformular mit spezifischen Angaben ergänzen. Die hochgeladene Datei wird jedoch als XSTRING zurückgegeben. Bei der Manipulation des Inhaltes wird jedoch der Datentyp STRING benötigt. Daher muss eine Konvertierung von XSTRING in STRING stattfinden.

Für Konvertierungen stehen drei ABAP-Klassen zur Verfügung:

Einlesen von Fremdformaten in ABAP Datenobjekte. (Lesen von einem Binäreingabestrom.)

Ausgabe von ABAP Datenobjekten in ein Fremdformat. (Schreiben in einen Binärausgabestrom.)

Einlesen von Daten in beliebigen Formaten und Ausgabe von Daten in beliebigen anderen Formaten. (Lesen von einem Binäreingabestrom und Schreiben in einen Binärausgabestrom.)

Weitere Informationen über die Konvertierungsklassen erhalten Sie in der Schlüsselwortdokumentation unter ABAP Objects ® ABAP System-Klassen ® Klassen zur Zeichensatz- und Zahlenformatkonvertierung.

Beispiel

<%@ page language="abap" %>
<html>
<body>
<form method="POST" enctype="multipart/form-data">
    <input type=file name="inputFile">
    <input type=submit value="Manipulate">
</form>

<% DATA: content     TYPE STRING,
                 Xcontent   TYPE XSTRING,
                entity        TYPE REF TO if_http_entity,
                idx            TYPE I VALUE 1.

    WHILE idx <= request->num_multiparts( ).
        entity = request->get_multipart( idx ).
        idx = idx + 1.

        IF entity->get_header_field( '~content_filename' ) IS INITIAL.
            CONTINUE.
        ENDIF.

        Xcontent = entity->get_data( ).
        IF XSTRLEN( Xcontent ) IS INITIAL.
            CONTINUE.
        ENDIF.

        DATA: conv   TYPE REF TO CL_ABAP_CONV_IN_CE.
        conv = CL_ABAP_CONV_IN_CE=>CREATE( input = Xcontent ).
        conv->READ( importing data = content ).
        EXIT.
    ENDWHILE.
%>

<h2>Manipulated Contents Example:</h2>
<%   TRANSLATE content TO LOWER CASE.
        TRANSLATE content USING 'aAeEiIoOuU'.
%>
<pre><%=content%></pre>
</body>
</html>

Ende des Inhaltsbereichs