2012-12-28 20 views
8

Ich habe eine Webapp auf einem Tomcat-Server, mit dem Dateien hochgeladen werden können. Es gibt eine Grenze für die Größe eines Datei-Uploads, und ich möchte, dass dieses Limit vorbeugend erzwungen wird (dh sobald Sie das Limit überschreiten, schlägt der Datei-Upload fehl, anstatt die gesamte Datei zu übertragen und zu prüfen, ob sie zu groß ist.) dann einen Fehler senden).gilt maxPostSize für Multipart/Formulardaten-Uploads

Ich habe versucht, dies zu tun, indem Sie maxPostSize="1000" in den Connector-Abschnitt in der entsprechenden Connector in server.xml hinzufügen, aber ich kann immer noch größere Dateien hochladen.

Ich habe eine post gesehen, die angibt, dass maxPostSize nur für einen bestimmten Inhaltstyp funktioniert.

Also meine Frage ist, ob das was ich tue, soll funktionieren. Hat mein Limit keine Auswirkung, weil ich Tommcat falsch konfiguriert habe oder weil dieses Feld nicht auf die Art von Post angewendet wird, die ich gerade mache?

Antwort

8

Es gibt eine sehr informative Diskussion dieses Themas here.

Wie ich es verstehe, erzwingt Tomcat diese Grenze nur, wenn der Inhaltstyp application/x-www-form-urlencoded ist. Bei Multiparts müssen Sie den Stream selbst lesen und das Limit selbst durchsetzen. Ein großartiges Werkzeug für die Arbeit mit mehrteiligen Daten ist Apache FileUpload.