FileDataSource ma metodu setFileTypeMap(FileTypeMap map). V dokumenatacii k triede javax.activation.FileTypeMap stoji :
"Implementations of this class will implement the getContentType methods which will derive a content type from a file name or a File object." Mozno by Vam pomohlo naimplementovat vlastnu triedu odvodenu z FileTypMap. Radovana Straube --- On Tue, 10/6/09, Dusan Zatkovsky <[email protected]> wrote: > From: Dusan Zatkovsky <[email protected]> > Subject: Re: JavaMail - MimeBodyPart.attachFile() > To: "Java" <[email protected]> > Date: Tuesday, October 6, 2009, 12:40 PM > Este ma napadlo - ja by som este > teoreticky dokazal prezit, ze sa mi .txt > nacitava do stringu, ale problem bude u velkych suborov, > pretoze moj pokus s > 2x800MB ascii subormi "foo.txt" a jeho kopiu "foo.bin" > dopadol tak, ze > volanie attachFile() (a alternativa s DataSource) pre > "foo.bin" trva zlomok > sekundy (vytvori sa len referencia na subor), ale u > "foo.txt" to vyzere pamat > a crashne (nacitava 800MB do stringu). > > > > > DD. > > > > Diky, ale nepomohlo: > > > > for ( String s : new String[] { > "/etc/passwd", "/tmp/passwd.txt" } ) { > > > FileDataSource fds = new FileDataSource(new File(s)); > > > DataHandler dh=new DataHandler(fds); > > > System.out.println(dh.getContentType()); > > } > > > > - java.io.FileInputStream > > - java.lang.String > > > > > Dobry den, > > > > > > skuste attachment pridat cez DataHandler: > > > > > > MimeBodyPart oBody = new MimeBodyPart(); > > > FileDataSource oFds = new > FileDataSource("/etc/passwd.txt"); > > > oBody.setDataHandler(new DataHandler(oFds)); > > > oBody.setFileName("passwd.txt"); > > > > > > S pozdravom > > > Radovana Straube > > > > > > --- On Tue, 10/6/09, Dusan Zatkovsky <[email protected]> > wrote: > > > > From: Dusan Zatkovsky <[email protected]> > > > > Subject: JavaMail - > MimeBodyPart.attachFile() > > > > To: "Java" <[email protected]> > > > > Date: Tuesday, October 6, 2009, 11:57 AM > > > > Ahoj. > > > > > > > > Ma tu niekto skusenosti s JavaMail? > Konkretne sa mi jedna o > > > > uvedenu metodu. > > > > > > > > Kod: > > > > > > > > MimeBodyPart part1 = new > > > > MimeBodyPart(); > > > > part1.attachFile( new File ( > > > > "/etc/passwd"); > > > > part1.setFileName("passwd"); > > > > > > > > MimeBodyPart part2 = new > > > > MimeBodyPart(); > > > > part2.attachFile( new File ( > > > > "passwd.txt"); > > > > > part2.setFileName("/tmp/passwd.txt"); > > > > > > > > /etc/passwd je ako kazdy vie ascii textovy > subor. > > > > passwd.txt je jeho prosta > > > > kopia pod inym nazvom (.txt). > > > > > > > > Nasleduje problem: > > > > > > > > > > > > > > > > System.out.println(part1.getContentType()); > > > > > > > > > System.out.println(part1.getContent().getClass()); > > > > > > > > // text/plain, > java.io.FileInputStream > > > > > > > > > > > > > > > > System.out.println(part2.getContentType()); > > > > > > > > > System.out.println(part2.getContent().getClass()); > > > > > > > > // text/plain, java.lang.String !!! > > > > > > > > Vypada to, ze ten **** nejak heurestikuje > podla mena a > > > > obsahu suboru a usudi, > > > > ze textovy subor je mozne ulozit do stringu. > To je ale > > > > presne to, co nechcem, > > > > pretoze sa obavam, ze pri dekodovani smime > spravy moze > > > > dojst k nejakym > > > > neocakavanym javom ( kodovanie a spol... ). > > > > > > > > Pozeral som sa aj na vysledky pomocou > > > > part.writeTo(System.out), oba su zhodne: > > > > > > > > Content-Disposition: attachment; > > > > filename=passwd > > > > ... obsah suboru > > > > > > > > Content-Disposition: attachment; > > > > filename=passwd.txt > > > > ... obsah suboru > > > > > > > > > > > > Da sa nejak MimeBodyPart donutit, aby > attachFile() robil > > > > skutocny attach file? > > > > > > > > > > > > Dik. > > > > > > > > -- > > > > Dusan > > > > > > > > > > > > ... tykajte mi > > > > -- > Dusan > > > ... tykajte mi > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
