userFilesPath = config.userFilesPath; lAllowedExtensions = config.allowedExtensions[url.type]; lDeniedExtensions = config.deniedExtensions[url.type]; customMsg = ''; // Can be overwritten. The last value will be sent with the result // make sure the user files path is correctly formatted userFilesPath = replace(userFilesPath, "\", "/", "ALL"); userFilesPath = replace(userFilesPath, '//', '/', 'ALL'); if ( right(userFilesPath,1) NEQ "/" ) { userFilesPath = userFilesPath & "/"; } if ( left(userFilesPath,1) NEQ "/" ) { userFilesPath = "/" & userFilesPath; } if (find("/",getBaseTemplatePath())) { fs = "/"; } else { fs = "\"; } // Get the base physical path to the web root for this application. The code to determine the path automatically assumes that // the "FCKeditor" directory in the http request path is directly off the web root for the application and that it's not a // virtual directory or a symbolic link / junction. Use the serverPath config setting to force a physical path if necessary. if ( len(config.serverPath) ) { serverPath = config.serverPath; } else { serverPath = replaceNoCase(getBaseTemplatePath(),replace(cgi.script_name,"/",fs,"all"),""); } // map the user files path to a physical directory userFilesServerPath = serverPath & replace(userFilesPath,"/",fs,"all"); errorNumber = 0; fileName = cffile.ClientFileName; fileExt = cffile.ServerFileExt; // munge filename for html download. Only a-z, 0-9, _, - and . are allowed if( reFind("[^A-Za-z0-9_\-\.]", fileName) ) { fileName = reReplace(fileName, "[^A-Za-z0-9\-\.]", "_", "ALL"); fileName = reReplace(fileName, "_{2,}", "_", "ALL"); fileName = reReplace(fileName, "([^_]+)_+$", "\1", "ALL"); fileName = reReplace(fileName, "$_([^_]+)$", "\1", "ALL"); } // When the original filename already exists, add numbers (0), (1), (2), ... at the end of the filename. if( compare( cffile.ServerFileName, fileName ) ) { counter = 0; tmpFileName = fileName; while( fileExists("#currentFolderPath##fileName#.#fileExt#") ) { counter = counter + 1; fileName = tmpFileName & '(#counter#)'; } }