AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TWebModule und Multipart
Thema durchsuchen
Ansicht
Themen-Optionen

TWebModule und Multipart

Ein Thema von Hobbycoder · begonnen am 8. Dez 2020 · letzter Beitrag vom 9. Dez 2020
Antwort Antwort
Hobbycoder

Registriert seit: 22. Feb 2017
1.002 Beiträge
 
#1

TWebModule und Multipart

  Alt 8. Dez 2020, 12:13
Hi,

ich habe einen AppServer als Standalone laufen, in dem ich über TWebModule die entsprechenden Requests auswerte und bearbeite. Die Anfrage werden über eine Webseite, die auf einem anderen Host liegt erzeugt.
Jetzt bin ich auf ein Problem gestoßen. Wenn ich in einem Request ein Picture mitgesendet wird, wird der Request als Multipart geschickt.
Wenn als Method im WebFormular Get verwendet wird, erhalte ich zwar alle Fields, jedoch ist Files.Count immer 0. Das ist ja Okay.
Ändere ich die Method auf Post, ist wird beim Auswerten des Content ein EEncodingError ausgeworfen. Die Daten sind aber im RawContent vorhanden, allerdings natürlich gänzlich anders als bei der Übertragung als GET.
Wie kriege ich es hin, dass der Request richtig geparst wird?
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
655 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TWebModule und Multipart

  Alt 8. Dez 2020, 13:30
Füge in der Uses Liste deines TWebModul's die Unit "Web.ReqMulti" hinzu. Danach sollte Files abgefüllt sein.
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
1.002 Beiträge
 
#3

AW: TWebModule und Multipart

  Alt 8. Dez 2020, 13:36
Danke. Habe ich bereits drin (hatte das irgendwo gelesen).

Leider ist das Verhalten mit und ohne gleich.

Mittlerweise habe ich herausgefunden, dass es nicht zwingend am POST liegt, sondern an dem Parameter
Code:
enctype="multipart/form-data"
im Form-Tag.
Ohne das enctype wird natürlich auch wieder keine Datei angahängt.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
669 Beiträge
 
Delphi 12 Athens
 
#4

AW: TWebModule und Multipart

  Alt 8. Dez 2020, 13:40
Wie wird denn das Senden der Datei auf Client-Seite (also der Client aus Sicht deines Delphi-Servers) erzeugt? Hängt da auch irgendein Code hinter, der die Datei sendet? Möglicherweise liegt da das Problem?
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
1.002 Beiträge
 
#5

AW: TWebModule und Multipart

  Alt 8. Dez 2020, 13:45
Zum Test erst einmal einfach so:

Code:
<html>
    <head>
        <meta charset="utf8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
    </head>
    <body>
        <form id="myForm" action="http://localhost:8443/senddata.php" method="post" enctype="multipart/form-data">
            <input type="hidden" name="DataType" value="fileupload">
            <input type="file" size="120" name="myfile">
            <input type="text" size="20" name="mimetype" value="image/bmp">
            <input type="submit" value="upload">
        </form>
    </body>
</html>
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
1.002 Beiträge
 
#6

AW: TWebModule und Multipart

  Alt 8. Dez 2020, 13:48
Lasse ich "enctype" weg, springt er mir auch in der Unit Web.ReqMulti in die Procedure "IsMultipartForm", liefert jedoch ein False zurück, weil es ja nicht drin steht.
Wenn enctype="multipart/form-data" jedoch drin ist, testet er gar nicht erst auf IsMultipartForm.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz