Show TOC

HintergrundFile-Upload und Manipulation des Content Dieses Dokument in der Navigationsstruktur finden

 

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:

  • CL_ABAP_CONV_IN_CE

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

  • CL_ABAP_CONV_OUT_CE

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

  • CL_ABAP_CONV_X2X_CE

    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

Syntax Syntax

  1. <%@ 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 Codes