Die alte Version verwendete Javax.servlet. Das Problem Ich kann die Lösung nicht finden, um den diskFileItemFactory < /p>
alter Code: < /p>
Code: Select all
ServletFileUpload = new ServletFileUpload(new DiskFileItemFactory(DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD, dir));
In Version 2.x ist der Konstruktor privat, also verwende ich stattdessen
Code: Select all
ServletFileUpload = new JakartaServletFileUpload(DiskFileItemFactory.builder().get());
Der Bauunternehmer für diskFileItemfactory hat jedoch keine SetRepository und SetThreshold. Ich weiß, dass dieses Repository nur ein Ordner für temporäre Dateien ist, und in der API für 2.x diskFileItemfactory.builder.get (): < /p>
Konstruiert eine neue Instanz. Dieser Baumeister verwendet den Aspektpfad und die Puffergröße. Sie müssen einen Ursprung bereitstellen, der von diesem Bauherr an einen Leser umgewandelt werden kann Pfad und Puffergröße des Aspekts . Was ist dann der Aspekt? Nun, das mag alles in Ordnung sein, da dieser Weg nur für temporäre Dateien gilt, aber ich bin immer noch verärgert, teilweise, weil die diskfileItemfactory selbst .GetRepository () und .Gethreshold () hat, also möchte ich sie trotzdem (und die Der alte Code tut, und es könnte wichtig sein) < /p>
Das diskfileItemfactory.builder erbt A die Methode .SetPath () von org.apache.commons.io.build.abstractoriginSupplier und Methoden .SetbufferSize () und .setbuffersizemax () von org.apache.commons.io.build.abstractStreamBuilder, aber es ist nicht klar, ob diese setRepository () und setThresoldes, wie es thresoldes, wie Die API dieser sehr allgemeinen und abstrakten Klassen preisgibt so gut wie nichts. Die .setPath () -Methode sagt nur, dass sie "einen neuen Ursprung festlegt" und nichts anderes. /> [*] Was ist der "Aspekt", aus dem diskfileTemfactory.builder.get () den Pfad und die Puffergröße aus? und Schwelle?
ayone weiß?>