[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