Author: ivaynberg Date: Tue Nov 11 15:13:22 2008 New Revision: 713219 URL: http://svn.apache.org/viewvc?rev=713219&view=rev Log: WICKET-1930
Modified: wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/form/upload/FileUpload.java wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/file/Files.java Modified: wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/form/upload/FileUpload.java URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/form/upload/FileUpload.java?rev=713219&r1=713218&r2=713219&view=diff ============================================================================== --- wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/form/upload/FileUpload.java (original) +++ wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/form/upload/FileUpload.java Tue Nov 11 15:13:22 2008 @@ -187,7 +187,8 @@ */ public final File writeToTempFile() throws IOException { - File temp = File.createTempFile(Session.get().getId(), item.getFieldName()); + File temp = File.createTempFile(Session.get().getId(), + Files.cleanupFilename(item.getFieldName())); writeTo(temp); return temp; } Modified: wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/file/Files.java URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/file/Files.java?rev=713219&r1=713218&r2=713219&view=diff ============================================================================== --- wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/file/Files.java (original) +++ wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/file/Files.java Tue Nov 11 15:13:22 2008 @@ -76,7 +76,7 @@ public static String filename(final String path) { return Strings.lastPathComponent(path.replace('/', java.io.File.separatorChar), - java.io.File.separatorChar); + java.io.File.separatorChar); } /** @@ -92,7 +92,8 @@ if (!file.delete()) { // NOTE: fix for java/win bug. see: - // http://forum.java.sun.com/thread.jsp?forum=4&thread=158689&tstart=0&trange=15 + // http://forum.java.sun.com/thread.jsp?forum=4&thread=158689&tstart= + // 0&trange=15 System.gc(); try { @@ -119,7 +120,7 @@ * @throws IOException */ public static final int writeTo(final java.io.File file, final InputStream input) - throws IOException + throws IOException { final FileOutputStream out = new FileOutputStream(file); try @@ -132,10 +133,32 @@ } } + private static String FORBIDDEN_IN_NAME = new String("\"*/:<>?\\|,"); + + /** + * <p> + * Replaces commonly unsupported characters with '_' + * </p> + * + * @param filename + * to be cleaned + * @return cleaned filename + */ + public static final String cleanupFilename(final String filename) + { + String name = filename; + for (int i = 0; i < FORBIDDEN_IN_NAME.length(); i++) + { + name = name.replace(FORBIDDEN_IN_NAME.charAt(i), '_'); + } + return name; + } + /** * Private constructor to prevent instantiation. */ private Files() { } + }