Thema: Delphi TWebModule und Multipart

Einzelnen Beitrag anzeigen

Rolf Frei

Registriert seit: 19. Jun 2006
650 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: TWebModule und Multipart

  Alt 9. Dez 2020, 14:12
Du kannst Request.ContentType abfragen aber brauchst du eigentlich nicht, da Files.Count in deinem Fall ausreicht.

Du hast aber in deinem Code noch eine grossen Fehler. Du nutzt das Request.QueryFields für den Zugriff der gesendeten Formaulardaten. In deinem Fall wirst du da nie etwas drin haben. QueryFields ist nur bei einem Formular mit der method="GET" oder einem Aufruf über eine URL abgefüllt. Bei einem Formular mit method="POST" sind die Formulardaten im Request.ContentFields abgefüllt. Der Unterschied von GET und POST ist der, dass beim GET die Daten per URL-Parameter übergeben werden und es somit Längenbeschränkungen gibt. Dieses sollte man in Formen eher nicht nutzen, insbesondere in deinem Fall wo Filedaten übertragen werden. Bei einem POST werden die Daten im Body (Content) der Anfrage übergeben und sind daher in der Grösse praktisch unbeschränkt. Bei GET Anfragen musst du QueryFields nutzen und bei POST ContentFields.

Delphi-Quellcode:
    datatype:=Request.QueryFields.Values['DataType'];
müsste so sein:
    datatype:=Request.ContentFields.Values['DataType'];
Ausserdem scheinst du eine Eingabe auf der Form zu haben, die den Dateityp vom Anwender verlangt. Das solltest du nicht so machen, denn der notrmale Anwender wird das kaum richtig eingeben. Die nötige Info steht eigentlich bereits im Request.Files[x].ContentType.

Geändert von Rolf Frei ( 9. Dez 2020 um 14:17 Uhr)
  Mit Zitat antworten Zitat