Tomcat55 fileupload

Filip Jirsák filip.jirsak na gmail.com
Pátek Leden 2 18:09:01 CET 2009


Zdravím,
File.renameTo() nejspíš volá funkci systému pro přejmenování souboru –
a to lze provést jenom v rámci jednoho oddílu. Pokud se soubor
„přesouvá" na jiný oddíl, musí se na něj okopírovat a v původním
umístění smazat. Popisuje to i JavaDoc k File.renameTo(), kde je
explicitně zmíněno přesouvání mezi různými oddíly: „Many aspects of
the behavior of this method are inherently platform-dependent: The
rename operation might not be able to move a file from one filesystem
to another".

Můžete dál používat renameTo() pro případ, kdy jsou obě umístění na
stejném oddílu, ale musíte doplnit fallback pro případ, kdy renameTo()
selže a pak soubor klasicky okopírovat a smazat.
S pozdravem

Filip Jirsák

Dne 2. leden 2009 17:45  <tomasjurman na email.cz> napsal(a):
> Dobrý den
>
> už několikátý den řeším problém s uploadem obrázků na nově instalovaný Tomcat55 na Linux(CentOS5, Java6Sun).
>
> Uživatel vybere na svém disku soubor a odešle formulář.
> Soubor se uloží do /tmp na serveru.
> Aplikace si soubor přesune do své složky <catalinaHome>/webapps/knihovna/images
>
> Problém:
> Soubor se uloží do /tmp, ale aplikace soubor nepřesune. Žádná exception. Jen success = false;
> boolean success =myFile.renameTo(destination);
>
> Myslel jsem špatná práva - zkontrolováno
> Myslel jsem na catalina.policy , ale Tomcat se nespoští s policy restrikcí.
> Aplikace na jiných strojích funguje správně, dokonce jsem připravil stejné prostředí OS i Java i Tomcat na zvláštním stroji - naprosto stejné.
> Knihovny Tomcatu jsou přes linky pospojován do /usr/share/tomcat5, myslel jsem tedy, že by mohl být problém v odkazech, do contextu jsem přidal allowLinking="true".
> Tomcat se spouští jako služba pod uživatelem tomcat.
>
> Rozdíly mezi nefunkční aplikací na vzdáleném stroji a funkční aplikací na testovacím stroji jsou:
> Na vzdáleném stroji je /tmp samostatný oddíl (LVM).
> Funkční aplikaci spouštím na localhostu.
>
> Děkuji za radu, chápu, že tento typ pproblém se přes email těžko řeší. Ale třeba se někdo s něčím podobným už setkal.
> Přeji mnoho radosti s Javou v novém roce
> Tomáš Jurman
>
>



-- 
Filip Jirsák
filip na jirsak.org


Další informace o konferenci Konference