Möglichkeit des Uploads von lokaler Platte in BSP

WAS, Netweaver, Fiori

Möglichkeit des Uploads von lokaler Platte in BSP

Postby Ellen3429 » Wed Jan 28, 2004 2:37 pm

Hallo zusammen,

erst einmal herzlichen Dank an alle die mir in der Vergangenheit durch ihre kompetenten Antworten das Leben erleichtert haben.

Aber nun zu einem weiteren Problem vor dem ich gerade stehe.
=====

Ich möchte einem externen Partner die Möglichkeit geben, seine Daten die er über eine BSP erfasst hat auch LOKAL auf seiner Platte in Dateiform abzulegen sowie diese Datei bei Bedarf auch wieder in die BSP einzulesen.

Hat Irgendjemand schon mal vor dieser Problematik gestanden und natürlich auch gelöst

Der WAS steht hinter der DMZ
Zugrif auf das Dateisystem dieses Servers ist nicht gegeben
Besteht überhaupt die Möglichkeit

Das Ablegen habe ich bisher so gelöst, dass lokal ein EXCEL-FIle erzeugt wird das dann auf Wunsch (natürlich Funktinalität der EXCEL-Appl.)auch lokal gespeichert werden kann.
Nur wie lese ich diese Datei dann wieder ein

Für Anregungen oder sogar Lösungen (Coding ??!!) wäre ich dankbar

Gruß

Neuwolf
Ellen3429
..
..
 
Posts: 20
Joined: Wed Oct 15, 2003 11:53 am

Postby Walter4536 » Wed Jan 28, 2004 3:15 pm

Hi,

zunächst mal zum Problem WAS hinter DMZ. Das heisst, der WAS ist von aussen nicht erreichbar (Internet). Bin zwar kein Sicherheitsexperte, würde aber auch auf jeden Fall genau dazu raten. Für 'aussen' erreichbar sollte ein Webserver stehen mit Reverse-Proxy, der entsprechend requests auf den WAS 'umleitet' und zurück.

Zum Problem mit Dateiupload und Download. Das kann man mit in HTML mit einem entsprechenden input tag lösen (zum Dateiupload). Encoding der Page muss dabei multipart-formdata sein.

Ein gutes Beispiel, wie ein upload und download in einer BSP erfolt ist die Beispielapplikation 'IT00'.

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. <h2> Form with Method POST and enctype "multipart/form-data"</h2>
  2. <form method="POST" enctype="multipart/form-data">
  3.   <table border=1 width="100%">
  4.  
GeSHi ©


Die Datei kann dann im OnInputProcessing entgegengenommen werden und zwar wie folgt:

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. * file upload and echo
  2.     data: entity         type ref to if_http_entity,
  3.           file           type xstring,
  4.           content_type   type string,
  5.           content_length type string,
  6.           num_multiparts type i,
  7.           i              type i value 1,
  8.           doEcho         type string.
  9.  
  10. *   find multipart containing file
  11.     num_multiparts = request->num_multiparts&#40; &#41;.
  12.     while i <= num_multiparts.
  13.       entity = request->get_multipart&#40; i &#41;.
  14.  
  15.       value = entity->get_header_field&#40; '~content_filename' &#41;.
  16.       if not value is initial.
  17. *       found a file!
  18.         navigation->set_parameter&#40; name  = 'content_filename'
  19.                                    value = value &#41;.
  20.  
  21.         content_type = entity->get_header_field&#40; 'Content-Type' &#41;.
  22.         navigation->set_parameter&#40; name  = 'content_type'
  23.                                    value = content_type &#41;.
  24.  
  25. *       get file content
  26.         file = entity->get_data&#40; &#41;.
  27.  
  28. *       get file size
  29.         content_length = xstrlen&#40; file &#41;.
  30.         navigation->set_parameter&#40; name  = 'content_length'
  31.                                    value = content_length &#41;.
  32.  
  33. *       echo/download the same file again?
  34.         doEcho = request->get_form_field&#40; 'doEcho' &#41;.
  35.         if doEcho is not initial.
  36. *         set response data to be the file content
  37.           runtime->server->response->set_data&#40; file &#41;.
  38. *         set the mime-type and file size in the response
  39.           runtime->server->response->set_header_field&#40;
  40.             name  = 'Content-Type'
  41.             value = content_type &#41;.
  42.           runtime->server->response->set_header_field&#40;
  43.             name  = 'Content-Length'
  44.             value = content_length &#41;.
  45.           runtime->server->response->delete_header_field&#40;
  46.             name = 'Cache-Control' &#41;.
  47.           runtime->server->response->delete_header_field&#40;
  48.             name = 'Expires' &#41;.
  49.         endif.
  50.  
  51.         exit.
  52.       endif.
  53.  
  54.       i = i + 1.
  55.     endwhile.
  56.  
  57.     if doEcho is not initial.
  58. *       signal to the BSP runtime that the response data is
  59. *       complete and no onLayout method should be called to
  60. *       create the response
  61.         navigation->response_complete&#40; &#41;.
  62.     else.
  63.       navigation->goto_page&#40; 'transition_parameter_upload.htm' &#41;.
  64.     endif.
  65.  
  66.  
GeSHi ©


Gruß,
Steff
Walter4536
...
...
 
Posts: 315
Joined: Mon Dec 02, 2002 12:09 pm


Return to Web Application Server

Who is online

Users browsing this forum: No registered users and 13 guests