[Yanel-commits] rev 29125 - public/yanel/trunk/src/resources/file/src/java/org/wyona/yanel/impl/resources/node

josias at wyona.com josias at wyona.com
Thu Nov 22 10:25:14 CET 2007


Author: josias
Date: 2007-11-22 10:25:13 +0100 (Thu, 22 Nov 2007)
New Revision: 29125

Modified:
   public/yanel/trunk/src/resources/file/src/java/org/wyona/yanel/impl/resources/node/NodeResource.java
Log:
fix the name of the uploaded file. see bug #5465, thanks to simon

Modified: public/yanel/trunk/src/resources/file/src/java/org/wyona/yanel/impl/resources/node/NodeResource.java
===================================================================
--- public/yanel/trunk/src/resources/file/src/java/org/wyona/yanel/impl/resources/node/NodeResource.java	2007-11-22 09:18:38 UTC (rev 29124)
+++ public/yanel/trunk/src/resources/file/src/java/org/wyona/yanel/impl/resources/node/NodeResource.java	2007-11-22 09:25:13 UTC (rev 29125)
@@ -368,8 +368,7 @@
             if (yanelRequest.isMultipartRequest()) {
                 Enumeration parameters = yanelRequest.getFileNames();
                 if (parameters.hasMoreElements()) {
-                    String name = yanelRequest.getFilesystemName((String) parameters.nextElement());
-                    return name;
+                    return fixAssetName(yanelRequest.getFilesystemName((String) parameters.nextElement()));
                 }
             } else {
                 log.error("this is NOT a multipart request");
@@ -540,4 +539,18 @@
     public void doTransition(String transitionID, String revision) throws WorkflowException {
         WorkflowHelper.doTransition(this, transitionID, revision);
     }
+
+    protected String fixAssetName(String name) {
+        // some browsers may send the whole path:
+        int i = name.lastIndexOf("\\");
+        if (i > -1) {
+            name = name.substring(i + 1);
+        }
+        i = name.lastIndexOf("/");
+        if (i > -1) {
+            name = name.substring(i + 1);
+        }
+        name = name.replaceAll(" |&|%|\\?", "_");
+        return name;
+    }
 }



More information about the Yanel-commits mailing list