[Javalist] Spring - Tomcat - File upload 2MByte

József Keresztes xesj.hu at gmail.com
2016. Okt. 21., P, 23:47:01 CEST


Sziasztok !

> Honnan szedtél bármekkora file-t? :) Sosem telt meg a memória es/vagy
diszk?
Van a gépemen egy kis gyűjtemény, a legnagyobb amivel kísérletezem egy kb.
250 MB méretű zip. Ez nálam a munkahelyemen egy upload könyvtár, pont ilyen
célokra, azzal is lehet játszani ha magyar ékezetesek a fájlnevek, stb.

> Ha 3 MB a fajllimit, akkor mi tortenik, ha egy 9 MB-os fajlt probalsz
meg feltolteni? Es ha egy 6 MB-osat? Foleg a 6 MB-os eseten erdekel,
hogy akkor is duplan hivodik meg az exception handler?

Mindig duplán hívódik, függetlenül hogy 6MB vagy 250MB-t akarok feltölteni.
Arra gondoltam én is hátha darabokban küldi és a darabok egyesével is túl
nagyok így mindegyik kiváltja az exception-t, de nem így van.

Memória és disk sosem telt meg, ilyen gond nem volt.

Verziók:
Tomcat 8.0.9 és Tomcat 8.0.15 verzióval is hibás
Spring 4.3.1.RELEASE
commons-io 2.5
commons-fileupload 1.3.2

Ezek közül egyedül a Spring 4.3.1.RELEASE-en nem változtattam, a többi
változott, de a helyzet ugyanaz maradt. Még az operációs rendszer is
változott, Windows10 és MacOS alatt is ugyanez a jelenség.

Üdv

2016. október 21. 18:21 Böszörményi Péter írta, <zmblevlist at gmail.com>:

> Csao!
>
> Tudnal pontos tomcat, spring, es commons upload verziokat mondani?
>
> On 21/10/16 10:52, József Keresztes wrote:
>
>> Sziasztok !
>>
>> Van egy Spring 4 MVC-s alkalmazásom, ami Tomcat 8-on fut. Szeretnék
>> benne fájl feltöltést csinálni (commons-fileupload végzi).
>> A problémám a fájl méret limitálásával van. A dispatcher config-ban be
>> van állítva a maximális méret, ami 1 Mbyte:
>>
>>   @Bean
>>   public MultipartResolver multipartResolver() {
>>     CommonsMultipartResolver multipartResolver = new
>> CommonsMultipartResolver();
>>     multipartResolver.setMaxUploadSize(1 * 1024 * 1024); // limit: 1
>> Mbyte
>>     return multipartResolver;
>>   }
>>
>> Ha a feltöltendő fájlméret ezt meghaladja, akkor
>> MaxUploadSizeExceededException keletkezik amit le is kezelek
>> a @ControllerAdvice osztályomban:
>>
>>   @ExceptionHandler(MaxUploadSizeExceededException.class)
>>   public String handleMaxUploadSizeExceededException(Exception e) {
>>     System.out.println("SAJÁT KEZELŐ: MaxUploadSizeExceededException");
>>     //e.printStackTrace();
>>     return "redirect:http://www.linux.hu";
>>   }
>>
>> Ha a feltöltendő fájlméret meghaladja az 1 Mbyte-ot, de nem haladja meg
>> a 2MByte-ot, akkor minden úgy történik
>> ahogy szeretném, lefut a saját hibakezelő, és egy redirect-tel átmegyünk
>> egy linuxos oldalra.
>> Ha viszont a fájl méret meghaladja a 2 Mbyte-ot, akkor a spring 2-szer
>> hívja meg a hibakezelőmet (már ez is gyanús), és több másodpercet is
>> várakozik egy 3 Mbyte-os fájlnál is,
>> és utána a böngészőben semmi sem jelenik meg. *A böngésző kiteszi a
>> "webhely nem érhető el, ellenőrizze az internetkapcsolatot, proxy-t, ..."
>> *
>> A firebug-ban nézve a kommunikációt, ekkor a POST kérésre egy "abort"
>> látszik, mintha nem lenne válasz...*
>> *
>>
>> Ha a fájl limitet a multipartResolver-ben felemelem 500 Mbyte-ra akkor
>> persze működik egy 450 Mbyte-os fájl feltöltés is,
>> tehát a hiba csak akkor jön _*ha feltöltéskor a megengedett limitet és a
>> 2 Mbyte-os is túllépjük*_.
>>
>> Most már sok órám ezzel ment el, és nem tudok rá megoldást, olvasgattam
>> a neten is, de hiába.
>> Amiket próbáltam eddig, de egyik sem jött be:
>>
>> - Tomcat server.xml ben a Connector-nál: maxPostSize="50000000"
>> - Tomcat server.xml-ben a Connector-nál: maxPostSize="50000000"
>> maxHttpHeaderSize="100000"
>> - web.xml-be: <multipart-config> beállítás
>> - commons-fileupload, commons-io más verzióit használva
>> - Windows helyett MacOS-en futtatva
>> - Az @ExceptionHandler egész mást csinál, redirect helyett saját lapra
>> dob, vagy egy http 409-es választ ad...
>> - Próba kisebb és nagyobb méretű fájlokkal: 3 Mbyte, 250 Mbyte
>>
>> Valaki azt írta a neten, de ezt csak az utolsó körben lépném meg, hogy ő
>> felemeli a fájl feltöltés limitet sok GB-ra, akkor szépen megy a fájl
>> feltöltés (hacsak ezt is nem lépi túl valaki),
>> és egy validátor majd ellenőrzni túllépte-e a fájl méret a limitet, amit
>> kiír a user-nek.
>>
>> Szóval igazából azt sem tudom ki a ludas ? A Spring, a Tomcat, az
>> exception-handler ? Ha belefutottatok ebbe, és volt rá megoldás
>> megköszönném.
>>
>> Üdv, xesj
>>
>>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> Javalist mailing list
>> Javalist at lists.javaforum.hu
>> http://lists.javaforum.hu/mailman/listinfo/javalist
>>
>> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist
>
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20161021/b70bc6b7/attachment.html>


További információk a(z) Javalist levelezőlistáról