diff options
author | Artur Signell <artur.signell@itmill.com> | 2009-12-15 09:19:08 +0000 |
---|---|---|
committer | Artur Signell <artur.signell@itmill.com> | 2009-12-15 09:19:08 +0000 |
commit | 68c2ac1150f35124440a35a396684bf6c1b49f23 (patch) | |
tree | 7652b8504d0ba2685a9406dca9a1fe131c2fda72 /src | |
parent | d4c526b2ef29faa1f05b686e31f717dc5d8a8148 (diff) | |
download | vaadin-framework-68c2ac1150f35124440a35a396684bf6c1b49f23.tar.gz vaadin-framework-68c2ac1150f35124440a35a396684bf6c1b49f23.zip |
Test case and fix for #3817 - Upload: Browsers send different filenames
svn changeset:10305/svn branch:6.2
Diffstat (limited to 'src')
-rw-r--r-- | src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java b/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java index 34d37fca06..dc2973ebe5 100644 --- a/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java +++ b/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java @@ -375,7 +375,9 @@ public abstract class AbstractCommunicationManager implements while (iter.hasNext()) { final FileItemStream item = iter.next(); final String name = item.getFieldName(); - final String filename = item.getName(); + // Should report only the filename even if the browser sends the + // path + final String filename = removePath(item.getName()); final String mimeType = item.getContentType(); final InputStream stream = item.openStream(); if (item.isFormField()) { @@ -442,6 +444,21 @@ public abstract class AbstractCommunicationManager implements } /** + * Removes any possible path information from the filename and returns the + * filename. Separators / and \\ are used. + * + * @param name + * @return + */ + private static String removePath(String filename) { + if (filename != null) { + filename = filename.replaceAll("^.*[/\\\\]", ""); + } + + return filename; + } + + /** * TODO document * * @param request |