summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorArtur Signell <artur.signell@itmill.com>2009-12-15 09:19:08 +0000
committerArtur Signell <artur.signell@itmill.com>2009-12-15 09:19:08 +0000
commit68c2ac1150f35124440a35a396684bf6c1b49f23 (patch)
tree7652b8504d0ba2685a9406dca9a1fe131c2fda72 /src
parentd4c526b2ef29faa1f05b686e31f717dc5d8a8148 (diff)
downloadvaadin-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.java19
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