[Javalist] Spring - Tomcat - File upload 2MByte

Böszörményi Péter zmblevlist at gmail.com
2016. Okt. 24., H, 18:35:05 CEST


Nezd meg, hogy meg lehet-e mondani a bongeszonek, hogy marpedig fejezze 
abba feltoltest.

On 24/10/16 09:54, József Keresztes wrote:
> Sziasztok !
>
> Ez a megoldás tényleg működik, köszönöm hogy felderítetted, csak nem
> tudom érdemes-e alkalmazni.
> Mert ugye ha a file limit 3 MB, ő meg feltölti az 5GB-s filmet, azt is
> ki kell szépen olvasni az inputstream-ből, hogy csak egyszer hívódjon
> meg az exceptionhandler, és az történjen amit a handler mond.
>
> Egyelőre maradok annál hogy nem állítok be limitet, persze ekkor is
> feltöltheti az 5GB-t, de legalább nem egy központi exception handler
> kezeli a dolgot, hanem egy validátor megnézi a MultipartFile.size()-t.
> Így még azt is nagyon egyszerű megoldni hogy a feltöltés mező mellett
> jelenjen meg egy szép piros felirat fájl túl nagy méretére vonatkozóan.
>
> Amúgy ez az egész file limit dolog sántít. Ugyanis nem a
> webalkalmazáshoz kellene beállítani hanem egy-egy file upload mezőhöz.
> Mert mi van ha egy alkalmazás egyik lapján filmet tölt fel,
> a másik lapon meg kisebb fotókat engedünk meg. A limit más és más.
>
>
> Üdv, xesj
>
> 2016. október 22. 20:41 Böszörményi Péter írta, <zmblevlist at gmail.com
> <mailto:zmblevlist at gmail.com>>:
>
>     A megfejtes:
>
>     A szerver visszakuld egy HTTP valaszt _mikozben_ a bongeszo meg
>     tolti fol a filet. Ugy tunik emiatt a bongeszo elkuldi a kerest
>     megegyszer. Legalabbis ez latszik a wiresharkbol. Ha handlerben a
>     request objektum inputstreamjet uresre olvasod, akkor mukodik a
>     dolog. Es hogy miert csak egy bizonyos meret felett jon elo? Nem
>     tudom, de az idohoz lehet koze. Legalabbis nekem csak akkor jott elo
>     a problema, ha a handler vart 1 masodpercet.
>
>     On 21/10/16 23:56, József Keresztes wrote:
>
>         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 <mailto:xesj.hu at gmail.com>
>         <mailto:xesj.hu at gmail.com <mailto: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 <mailto:zmblevlist at gmail.com>
>         <mailto:zmblevlist at gmail.com <mailto: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
>         <mailto:Javalist at lists.javaforum.hu>
>         <mailto:Javalist at lists.javaforum.hu
>         <mailto:Javalist at lists.javaforum.hu>>
>                     http://lists.javaforum.hu/mailman/listinfo/javalist
>         <http://lists.javaforum.hu/mailman/listinfo/javalist>
>                     <http://lists.javaforum.hu/mailman/listinfo/javalist
>         <http://lists.javaforum.hu/mailman/listinfo/javalist>>
>
>                 _______________________________________________
>                 Javalist mailing list
>                 Javalist at lists.javaforum.hu
>         <mailto:Javalist at lists.javaforum.hu>
>         <mailto:Javalist at lists.javaforum.hu
>         <mailto:Javalist at lists.javaforum.hu>>
>                 http://lists.javaforum.hu/mailman/listinfo/javalist
>         <http://lists.javaforum.hu/mailman/listinfo/javalist>
>                 <http://lists.javaforum.hu/mailman/listinfo/javalist
>         <http://lists.javaforum.hu/mailman/listinfo/javalist>>
>
>
>
>
>
>         _______________________________________________
>         Javalist mailing list
>         Javalist at lists.javaforum.hu <mailto:Javalist at lists.javaforum.hu>
>         http://lists.javaforum.hu/mailman/listinfo/javalist
>         <http://lists.javaforum.hu/mailman/listinfo/javalist>
>
>     _______________________________________________
>     Javalist mailing list
>     Javalist at lists.javaforum.hu <mailto:Javalist at lists.javaforum.hu>
>     http://lists.javaforum.hu/mailman/listinfo/javalist
>     <http://lists.javaforum.hu/mailman/listinfo/javalist>
>
>
>
>
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist
>


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