AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Upload-Problem (ISAPI, TWebModul, POST)
Thema durchsuchen
Ansicht
Themen-Optionen

Upload-Problem (ISAPI, TWebModul, POST)

Ein Thema von christophspaeth · begonnen am 20. Jan 2015 · letzter Beitrag vom 20. Jan 2015
Antwort Antwort
christophspaeth

Registriert seit: 7. Mär 2008
73 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Upload-Problem (ISAPI, TWebModul, POST)

  Alt 20. Jan 2015, 10:35
Hallo,
ich möchte bei einem älteren Webprojekt (TWebModule; ISAPI-Modul via mod_ISAPI in Apache 2.4 geladen) einen Dateiupload einbauen. Wegen div. Abhängigkeiten ist dieses Projekt noch auf Delphi 2006.

So lange nur eine kleine Datei hochgeladen wird, funktioniert das auch. Wenn eine Datei von einem knappen MB hochgeladen wird, hat TWebRequest.Content nur ca. 48k - ist ja auch so in der Dokumentation angegeben. Wenn ich jetzt aber einen Buffer reserviere und versuche mit ReadClient(...) den Rest zu lesen, bekomme ich 0 zurück, also nichts gelesen.
Delphi-Quellcode:
var
  buff:AnsiString;
  remBytes: Integer;
  ...
begin
  ...
  remBytes := request.ContentLength - length(request.content); // remBytes hat in meinem Versuch noch gut 800k
  setLength(buff, remBytes);
  bytesRead := request.ReadClient(buff[1], remBytes); // liefert 0 zurück
  ...
In ziemlich alten Posts (2003, 2004), die sich aber noch auf Apache 1.3 beziehen habe ich von einer 48k-Grenze gelesen, aber keine aktuellen Info dazu gefunden.

Den ISAPIReadAheadBuffer im Apache möchte ich eigentlich nur ungern erhöhen.

Gibt es da bekannte Probleme bzw. hat noch jemand einen Tipp was ich ausprobieren könnte?

Danke!
Christoph Späth
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.797 Beiträge
 
Delphi 12 Athens
 
#2

AW: Upload-Problem (ISAPI, TWebModul, POST)

  Alt 20. Jan 2015, 10:51
Ist denn im apache der Upload von größeren Datein erlaubt? Ich habe gerade keinnen zur Hand, aber da gab es doch die eine oder andere Stelle in der httpd.conf wo Upload_maximum_filesize oder auch memory_limit(der Upload ist ja im gewissen Umfang auch zunächst im Arbeitsspeicher) angepasst werden können/müssen.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
christophspaeth

Registriert seit: 7. Mär 2008
73 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Upload-Problem (ISAPI, TWebModul, POST)

  Alt 20. Jan 2015, 12:00
Hallo Sherlock,

danke für deien Antwort.
Ich habe gerade nochmal nachgesehen: In der httpd.conf (und den daraus referenziertern config-Dateien) habe ich keine Größenangabe gefundenm die anscheiend dafür zuständige Direktive LimitRequestBody (default: 0 = unbegrenzt) habe ich nicht in meiner Config gefunden. Im Internet bin ich auch nur auf Beiträge zu php gestoßen und dass man die max. Upload- bzw. Postsize in der php.ini anpassen kann/muss - kein Verweis auf irgendeine Apache-Einstellung.

Chris

Edit: Mit einem frischen Testprojekt klappt es natürlich auf der gleichen Apache-Installation... - an der RewriteRule liegt es also schonmal nicht...
Christoph Späth

Geändert von christophspaeth (20. Jan 2015 um 13:39 Uhr) Grund: weitere Erkenntnisse
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.797 Beiträge
 
Delphi 12 Athens
 
#4

AW: Upload-Problem (ISAPI, TWebModul, POST)

  Alt 20. Jan 2015, 12:14
Ah, verdammt...php. Ja, sorry.
Dann kann ich Dir nur viel Glück wünschen und bin leider raus.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
christophspaeth

Registriert seit: 7. Mär 2008
73 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Upload-Problem (ISAPI, TWebModul, POST)

  Alt 20. Jan 2015, 17:49
Es sieht so aus, als wäre ein vorhergehender Zugriff auf Request.ContentFields dafür verantwortlich gewesen, dass das ReadClient nicht mehr funktioniert hatte...

Nachdem der nur für ein erweitertes Tracing verwendet wurde, habe ich den natürlich auch nicth hier in den Beispielcode gepackt.
Auch wenn das ein recht spezieller Fehler ist: Vielleicht hilft der Post ja trotzdem jemandem nicht genauso lange wie ich nach dem Problem suchen zu müssen.
Christoph Späth
  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 05:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz