[Javalist] Spring - Tomcat - File upload 2MByte
József Keresztes
xesj.hu at gmail.com
2016. Okt. 21., P, 23:56:13 CEST
Közben kipróbáltam a legújabb Spring verzióval is a 4.3.3RELEASE -zel, a
hiba ugyanúgy fennáll.
Inkább azt kérdezem hogy a Ti Spring-es alkalmazásaitokban, nem jön elő ez
a hiba ??? Lehetetlen hogy csak nálam legyen.
2016. október 21. 23:47 József Keresztes írta, <xesj.hu at gmail.com>:
> 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/ada645f8/attachment.html>
További információk a(z) Javalist levelezőlistáról