# commons-user mailing list archives

##### Site index · List index
Message view
Top
From Dakota Jack <dakota.j...@gmail.com>
Subject Re: [FileUpload] Getting wrong filename from FileItem
Date Fri, 06 May 2005 08:08:10 GMT
```You know, Mihael, the reason it works is that the code is new
File(fileName).getName() so that the creation of the file converts to
the local separator.  Look at the Java source.

You agree?  Anyway, I am probably making the thread too long, but I
like to compete these things.

On 5/6/05, Knezevic, Mihael <m.knezevic@porta.de> wrote:
> thanks for all the advice. i'll test it.
>
> > -----Ursprüngliche Nachricht-----
> > Von: Dakota Jack [mailto:dakota.jack@gmail.com]
> > Gesendet: Freitag, 6. Mai 2005 09:55
> > An: Jakarta Commons Users List
> > Betreff: Re: [FileUpload] Getting wrong filename from FileItem
> >
> > I tested it out on both file separators (linux and microsoft)
> > and it works on both.  Just run a test and see if it works.  It does
> >
> >
> > public class Test {
> >   public static void main(String [] params) {
> >     File ie = new File("C:\\mydir\\myfile.txt");
> >     File linux = new File("/mydir/myfile.txt");
> >     StdOut.log("log.development","Test ttf ie.getName() = " +
> > ie.getName());
> >     StdOut.log("log.development","Test ttf linux.getName() =
> > " + linux.getName()); }
> >
> > You should just use System.out.println() of course.
> >
> >
> > On 5/6/05, Knezevic, Mihael <m.knezevic@porta.de> wrote:
> > > i can not figure out how this should work. this is a web
> > application. linux and windows clients are accessing the app.
> > the filename can be /mydir/myfile.txt and
> > C:\mydir\myfile.txt. how should the server know which file
> > separator to use. hmm. i could take a look at the http
> > request data. ain't there a field for the operating system.
> > but that ain't something i like to do. these things are
> > always changing.
> > >
> > > i'll try your code later. thanks.
> > >
> > > > -----Ursprüngliche Nachricht-----
> > > > Von: Dakota Jack [mailto:dakota.jack@gmail.com]
> > > > Gesendet: Freitag, 6. Mai 2005 09:34
> > > > An: Jakarta Commons Users List
> > > > Betreff: Re: [FileUpload] Getting wrong filename from FileItem
> > > >
> > > > This code should definitely work.  If it does not, I sure
> > would like
> > > > to know what happens.  What did happen?  Did you debug it?
> > > >
> > > >
> > > >
> > > > On 5/6/05, Knezevic, Mihael <m.knezevic@porta.de> wrote:
> > > > >
> > > > >
> > > > > > -----Ursprüngliche Nachricht-----
> > > > > > Von: Dakota Jack [mailto:dakota.jack@gmail.com]
> > > > > > Gesendet: Freitag, 6. Mai 2005 08:51
> > > > > > An: Jakarta Commons Users List; Knezevic, Mihael
> > > > > > Betreff: Re: [FileUpload] Getting wrong filename from FileItem
> > > > > >
> > > > > > Just so there is no misunderstanding, the browsers have
> > > > nothing to
> > > > > > do with what getName returns.  The browsers differ in
> > > > what name they
> > > > > > provide for the file.  Thus, when you get a File
> > object for IE
> > > > > > it gives the full name and for the others the actual file
> > > > name itself.
> > > > > thanks for the extra explanation. it's what i understood in
> > > > the first place (no offense on this one).
> > > > >
> > > > >
> > > > > > You make them all the same if you change
> > > > > > you
> > > > > > file,getName() rather than just file.
> > > > > >
> > > > > >
> > > > > >
> > > > > >     // Just add this to the "protected String getFileName(Map
> > > > > >     if(fileName != null) {
> > > > > >       fileName = new java.io.File(fileName).getName();
> > > > > >     }
> > > > >
> > > > > tried that in the first place in my programm. but as the
> > > > filename is something like C:\mydir\myfile.txt (windows file
> > > > path) it doesn't seem to work on the linux server i'm
> > running. file
> > > > separators are different. correct me if i'm wrong.
> > > > >
> > > > > windows client (ie) returns C:\mydir\myfile.txt to my linux
> > > > server. on linux the file separator is a slash ( / ) and not a
> > > > backslash ( \ ). so my linux server searches for a slash
> > in the full
> > > > filename to get just the filename. but there is none. so
> > it assumes
> > > > it is the filename and returns it all.
> > > > >
> > > > > >
> > > > > >
> > > > > > On 5/5/05, Mihael Knezevic <m.knezevic@porta.de> wrote:
> > > > > > > thanks to all the responses for my question.
> > > > > > >
> > > > > > > actually i didn't know that it was a browser "thing". i
> > > > > > thought it was
> > > > > > > an operating system thing. thanks for clearing this up.
and
> > > > > > as this is
> > > > > > > a browser specific thing IMHO there should be just a
> > > > change in the
> > > > > > > docu where you should add the fact that the IE is
> > not behaving
> > > > > > > like any other browser with the method getName.
> > that would be
> > > > > > > of
> > > > > > much help.
> > > > > > >
> > > > > > > and this is the kind of "feature" i don't like of
> > MS software.
> > > > > > >
> > > > > > > Am Mittwoch, 4. Mai 2005 22:02 schrieb Frank W. Zammetti:
> > > > > > > > I know, I've run into this myself... But, it should
> > > > be a fairly
> > > > > > > > trivial exercise to write code to extract just the
> > > > filename (as
> > > > > > > > I believe you've done).  This makes sense to me as
an
> > > > > > > > method.  That way no existing code gets broken, but
> > > > > > code can
> > > > > > > > use the new method, which works as getName()
> > probably should
> > > > > > > > have been working all along anyway (IMHO).
> > > > > > > >
> > > > > > > > Frank
> > > > > > > >
> > > > > > > > Dakota Jack wrote:
> > > > > > > > > The data difference is not in the code but in
the
> > > > request data
> > > > > > > > > from the browser.  IE puts in the full name and
other
> > > > > > browsers put
> > > > > > > > > in just the name.  Calling [file].getName() gives
the
> > > > > > same result
> > > > > > > > > for all of them.  I don't think there is a way
to get a
> > > > > > full name
> > > > > > > > > from the browsers that send only the file name.
> > > > There is no
> > > > > > > > > reason, of course, to know the full name.
> > > > > > > > >
> > > > > > > > > On 5/4/05, Frank W. Zammetti
> > <fzlists@omnytex.com> wrote:
> > > > > > > > >
> > > > > > > > >>It seems to me a method to get JUST the filename
makes
> > > > > > a lot of sense...
> > > > > > > > >>what has been the reason for not adding it
> > > > > > to what's
> > > > > > > > >>there now?  Unfortunately it would make more
sense if
> > > > > > > > >>getName() returned just the name while there
> > was another
> > > > > > > > >>method, maybe
> > > > > > > > >>getFullName() that returned what getName()
returns now,
> > > > > > but that
> > > > > > > > >>breaks existing code potentially, so I can
certainly
> > > > > > see why that
> > > > > > > > >>hasn't been done, but adding something like
> > > > getJustTheName()
> > > > > > > > >>or something (obviously there must be a better
choice!)
> > > > > > makes sense to me.
> > > > > > > > >>
> > > > > > > > >>Frank
> > > > > > > > >>
> > > > > > > > >>Dakota Jack wrote:
> > > > > > > > >>
> > > > > > > > >>>That is an excellent point, Robert.  I
often forget
> > > > > > how horrible
> > > > > > > > >>>it must be to be immeshed in those programming
worlds
> > > > > > where there
> > > > > > > > >>>is no recourse.  Too often we shy away,
I think,
> > > > at changing
> > > > > > > > >>>code, even with the Java distribution
> > > > > > issues notwithstanding.
> > > > > > > > >>>
> > > > > > > > >>>On 5/4/05, robert burrell donkin
> > > > > > > > >>><robertburrelldonkin@blueyonder.co.uk>
> > > > > > > wrote:
> > > > > > > > >>>
> > > > > > > > >>>
> > > > > > > > >>>>On Wed, 2005-05-04 at 10:26 -0700,
Dakota Jack wrote:
> > > > > > > > >>>>
> > > > > > > > >>>>
> > > > > > > > >>>>>Some people think this is a bug
and some people
> > > > > > think that this
> > > > > > > > >>>>>is a feature.
> > > > > > > > >>>>
> > > > > > > > >>>><snip>
> > > > > > > > >>>>
> > > > > > > > >>>>>That is not a problem, however.
I just went in and
> > > > > > changed the
> > > > > > > > >>>>>commons upload code adding .getName()
to the
> > > > file at this
> > > > > > > > >>>>>stage.  The problem you are seeing
is in
> > > > Internet Explorer,
> > > > > > > > >>>>>right?  Firefox and Netscape return
the file name
> > > > > > and Internet
> > > > > > > > >>>>>Explorer returns the full path.
Anyway, you
> > > > either have to
> > > > > > > > >>>>>solve the problem in the commons
> > > > > > where it
> > > > > > > > >>>>>is easy to solve, or to go through
some wasted
> > > > > > mechanisms after
> > > > > > > > >>>>>the fact.  Everyone has to solve
this problem
> > > > > > somewhere, so I
> > > > > > > > >>>>>definitely come down on the side
of "bug" versus
> > > > "feature".
> > > > > > > > >>>>
> > > > > > > > >>>>the great thing about open source
is that you are
> > > > free to do
> > > > > > > > >>>>exactly this :)
> > > > > > > > >>>>
> > > > > > > > >>>>- robert
> > > > > > >
> > > > >
> > > > >
> > > >
> > --------------------------------------------------------------------
> > > > -
> > > > > To unsubscribe, e-mail:
> > > > > commons-user-unsubscribe@jakarta.apache.org
> > > > > For additional commands, e-mail:
> > > > commons-user-help@jakarta.apache.org
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > "You can lead a horse to water but you cannot make it
> > float on its
> > > > back."
> > > > ~Dakota Jack~
> > > >
> > > >
> > --------------------------------------------------------------------
> > > > - To unsubscribe, e-mail:
> > > > commons-user-unsubscribe@jakarta.apache.org
> > > > For additional commands, e-mail:
> > > > commons-user-help@jakarta.apache.org
> > > >
> > > >
> > >
> > >
> > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
> > > For additional commands, e-mail:
> > commons-user-help@jakarta.apache.org
> > >
> > >
> >
> >
> > --
> > "You can lead a horse to water but you cannot make it float
> > on its back."
> > ~Dakota Jack~
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: commons-user-help@jakarta.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-user-help@jakarta.apache.org
>
>

--
"You can lead a horse to water but you cannot make it float on its back."
~Dakota Jack~

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org