Javaウェブ・アプリケーションでFCKeditorを使う。また、FCKeditor を利用してファイル(写真とFlashなど)をアップロードし、簡単にコンテンツに挿入できる。簡単に管理と運用できるため、アップロードされたファイルのサーバ上の保存場所と名前について、カスタマイズし、「/${htdocs}/UserFiles/userid/type/yyyymmddzzzz.ext」のようにします。例えば、「http://uprush.net/UserFiles/2/Image/200710156978.jpg」のように保存します。
1.FCKeditor-2.3-javaのインストール
こちら から、最新バージョンの統合用ファイルをダウンロードできます。
ダウンロードしたファイルに含まれるFCKeditor-2.3.jarを直接使えますが、日本語名ファイルはアップロードで きない、また、アップロード・ファイルの保存場所と名前をカスタマイズしたいので、ソースを修正して利用します。解凍した「FCKeditor-2.3- java/src/FCKeditor.tld」を WEB-INF/tld にコピーする。「FCKeditor-2.3-java/src/com」フォルダをプロジェクトのソースフォルダにコピーする、例えばUprushの場 合は uprush/src です。
ファイル・アップロードについて、Apache の commons-fileupload が必要となります。FCKeditor-2.3-java にあるcommons-fileupload はバージョンが古いため、日本語名ファイルのアップロードができない。Apache から最新版ダウンロードし、commons-fileupload-1.2.jar をWEB-INF/lib に配置する。
ConnectorとSimpleUploader のservlet を指定する。web.xml に下記内容を追加する。
- <servlet>
- <servlet-name>Connector</servlet-name>
- <servlet-class>com.fredck.FCKeditor.connector.ConnectorServlet</servlet-class>
- <init-param>
- <param-name>baseDir</param-name>
- <param-value>/UserFiles/</param-value>
- </init-param>
- <init-param>
- <param-name>debug</param-name>
- <param-value>false</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet>
- <servlet-name>SimpleUploader</servlet-name>
- <servlet-class>com.fredck.FCKeditor.uploader.SimpleUploaderServlet</servlet-class>
- <init-param>
- <param-name>baseDir</param-name>
- <param-value>/UserFiles/</param-value>
- </init-param>
- <init-param>
- <param-name>debug</param-name>
- <param-value>false</param-value>
- </init-param>
- <init-param>
- <param-name>enabled</param-name>
- <param-value>true</param-value>
- </init-param>
- <init-param>
- <param-name>AllowedExtensionsFile</param-name>
- <param-value></param-value>
- </init-param>
- <init-param>
- <param-name>DeniedExtensionsFile</param-name>
- <param-value>php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi</param-value>
- </init-param>
- <init-param>
- <param-name>AllowedExtensionsImage</param-name>
- <param-value>jpg|gif|jpeg|png|bmp</param-value>
- </init-param>
- <init-param>
- <param-name>DeniedExtensionsImage</param-name>
- <param-value></param-value>
- </init-param>
- <init-param>
- <param-name>AllowedExtensionsFlash</param-name>
- <param-value>swf|fla</param-value>
- </init-param>
- <init-param>
- <param-name>DeniedExtensionsFlash</param-name>
- <param-value></param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>Connector</servlet-name>
- <url-pattern>/fckeditor/editor/filemanager/browser/default/connectors/jsp/connector</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>SimpleUploader</servlet-name>
- <url-pattern>/fckeditor/editor/filemanager/upload/simpleuploader</url-pattern>
- </servlet-mapping>
<servlet> Connector com.fredck.FCKeditor.connector.ConnectorServlet
baseDir
/UserFiles/
debug
false
1 SimpleUploader com.fredck.FCKeditor.uploader.SimpleUploaderServlet
baseDir
/UserFiles/
debug
false
enabled
true
AllowedExtensionsFile
DeniedExtensionsFile
php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi
AllowedExtensionsImage
jpg|gif|jpeg|png|bmp
DeniedExtensionsImage
AllowedExtensionsFlash
swf|fla
DeniedExtensionsFlash
1 Connector /fckeditor/editor/filemanager/browser/default/connectors/jsp/connector SimpleUploader /fckeditor/editor/filemanager/upload/simpleuploader
fckeditor/fckconfig.js を修正する。
-
- FCKConfig.LinkUploadURL = FCKConfig.BasePath + ’filemanager/upload/simpleuploader?Type=File’ ;
-
-
- FCKConfig.ImageUploadURL = FCKConfig.BasePath + ’filemanager/upload/simpleuploader?Type=Image’ ;
-
-
- FCKConfig.FlashUploadURL = FCKConfig.BasePath + ’filemanager/upload/simpleuploader?Type=Flash’ ;
// FCKConfig.LinkUploadURL = FCKConfig.BasePath + ’filemanager/connectors/’ + _QuickUploadLanguage + ’/upload.’ + _QuickUploadExtension ; FCKConfig.LinkUploadURL = FCKConfig.BasePath + ’filemanager/upload/simpleuploader?Type=File’ ; // FCKConfig.ImageUploadURL = FCKConfig.BasePath + ’filemanager/connectors/’ + _QuickUploadLanguage + ’/upload.’ + _QuickUploadExtension + ’?Type=Image’ ; FCKConfig.ImageUploadURL = FCKConfig.BasePath + ’filemanager/upload/simpleuploader?Type=Image’ ; // FCKConfig.FlashUploadURL = FCKConfig.BasePath + ’filemanager/connectors/’ + _QuickUploadLanguage + ’/upload.’ + _QuickUploadExtension + ’?Type=Flash’ ; FCKConfig.FlashUploadURL = FCKConfig.BasePath + ’filemanager/upload/simpleuploader?Type=Flash’ ;
最後、FCKeditor を取り込むJSPを修正する。
FCKeditor の taglib をインポートする。
- <%@ taglib uri="/WEB-INF/tld/FCKeditor.tld" prefix="FCK" %>
<%@ taglib uri="/WEB-INF/tld/FCKeditor.tld" prefix="FCK" %>
FCKeditor を取り込む
- <FCK:editor
- id="FCKeditor1"
- basePath="fckeditor/"
- height="600"
- defaultLanguage="Ja">
- </FCK:editor>
<FCK:editor id="FCKeditor1" basePath="fckeditor/" height="600" defaultLanguage="Ja">
TomcatなどのAPサーバを起動し、ブラウザのキャッシュを消してから上記JSPにアクセスと、FCKeditor が画面に表示されるはずです。エディタの「イメージ挿入/編集」をクリックと下記画面が表示される。

2.サーバ・ブラウザを無効化
上記写真、Flashのアップロード画面に、「サーバーブラウザー」ボタンがあります。このボタンをクリックすると、アップロードされたファイルを保存するサーバー上のフォルダの内容が見えます。外向けのサーバにとって、この機能が好ましくないです。無効にする。fckeditor/fckconfig.js を修正する。
-
- FCKConfig.LinkBrowser = false ;
-
-
- FCKConfig.ImageBrowser = false ;
-
-
- FCKConfig.FlashBrowser = false ;
// FCKConfig.LinkBrowser = true ; FCKConfig.LinkBrowser = false ; // FCKConfig.ImageBrowser = true ; FCKConfig.ImageBrowser = false ; // FCKConfig.FlashBrowser = true ; FCKConfig.FlashBrowser = false ;
ブラウザのキャッシュを消して確認すると、アップロード画面の「サーバーブラウザー」は消えた。

3.アップロード先のカスタマイズ
以上で FCKeditor と Java は連携できましたが、ファイルのアップロード、特に日本語名ファイルのアップロードにはまだ修正が必要です。
FCKeditor-java を使ってアップロードしたファイルは、デフォルト「$PROJECT_ROOT/UserFiles/type/filename」でサーバ上に保存されます。ファイル数が多くなると管理が難しくなります。ですので、保存フォルダを「${htdocs}/UserFiles/userid/type」、ファイル名を「yyyymmddzzzz.ext」にします。例えば、「/var/www/html/UserFiles/101/Image/200801160001.gif」として保存します。
先FCKeditor-2.3-javaのソースをプロジェクトにコピーしました。ソース com.fredck.FCKeditor.uploader.SimpleUploaderServlet を修正します。
ここの ${htdocs} はウェブ・コンテンツのフォルダを指します、例えば「/var/www/html」、値は設定ファイル(.properties)から取得します。
- String htdocDir = _rb.getString("htdocs_folder");
String htdocDir = _rb.getString("htdocs_folder");
コンテンツを掲載するには、ログインが必要で、ユーザIDをセッションに保存すると想定します。ですので、userid はセッションから取得できます。
- HttpSession session = request.getSession();
- if (session != null) {
- Object userid = session.getAttribute(USER_ID_KEY);
- if (userid != null) {
- currentPath = currentPath + (String) userid;
- }
- }
// 会員ID HttpSession session = request.getSession(); if (session != null) { Object userid = session.getAttribute(USER_ID_KEY); if (userid != null) { currentPath = currentPath + (String) userid; } }
ファイル名は「日付+乱数+拡張子」(yyyymmddzzzz.ext)にします。
- private String getFileID() {
- int ranNum = RandomUtils.nextInt(10000);
- Calendar c = Calendar.getInstance();
- String year = String.valueOf(c.get(Calendar.YEAR));
- String month = StringUtils.leftPad(String.valueOf(c.get(Calendar.MONTH) + 1), 2, ’0’);
- String day = StringUtils.leftPad(String.valueOf(c.get(Calendar.DAY_OF_MONTH)), 2, ’0’);
- String ret = year + month + day + String.valueOf(ranNum);
-
- return ret;
- }
private String getFileID() { int ranNum = RandomUtils.nextInt(10000); Calendar c = Calendar.getInstance(); String year = String.valueOf(c.get(Calendar.YEAR)); String month = StringUtils.leftPad(String.valueOf(c.get(Calendar.MONTH) + 1), 2, ’0’); String day = StringUtils.leftPad(String.valueOf(c.get(Calendar.DAY_OF_MONTH)), 2, ’0’); String ret = year + month + day + String.valueOf(ranNum); return ret; }
以下は修正後の SimpleUploaderServlet の完全なソースです。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- package com.fredck.FCKeditor.uploader;
-
- import java.io.File;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.HashMap;
- import java.util.Hashtable;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
- import java.util.ResourceBundle;
-
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
-
- import org.apache.commons.fileupload.FileItem;
- import org.apache.commons.fileupload.disk.DiskFileItemFactory;
- import org.apache.commons.fileupload.servlet.ServletFileUpload;
- import org.apache.commons.lang.StringUtils;
- import org.apache.commons.lang.math.RandomUtils;
-
-
-
-
-
-
-
-
-
- public class SimpleUploaderServlet extends HttpServlet {
-
- private static String baseDir;
- private static boolean debug=false;
- private static boolean enabled=false;
- private static Hashtable allowedExtensions;
- private static Hashtable deniedExtensions;
- private static ResourceBundle _rb = ResourceBundle.getBundle("resource.uprush");
-
-
-
-
- private static final String USER_ID_KEY = "USER_ID_MEMO";
-
-
-
-
-
-
-
-
- public void init() throws ServletException {
-
- debug=(new Boolean(getInitParameter("debug"))).booleanValue();
-
- if(debug) System.out.println("\r\n---- SimpleUploaderServlet initialization started ----");
-
- baseDir=getInitParameter("baseDir");
- enabled=(new Boolean(getInitParameter("enabled"))).booleanValue();
- if(baseDir==null)
- baseDir="/UserFiles/";
-
- String htdocDir = _rb.getString("htdocs_folder");
-
- File baseFile=new File(htdocDir + baseDir);
- if(!baseFile.exists()){
- baseFile.mkdir();
- }
-
- allowedExtensions = new Hashtable(3);
- deniedExtensions = new Hashtable(3);
-
- allowedExtensions.put("File",stringToArrayList(getInitParameter("AllowedExtensionsFile")));
- deniedExtensions.put("File",stringToArrayList(getInitParameter("DeniedExtensionsFile")));
-
- allowedExtensions.put("Image",stringToArrayList(getInitParameter("AllowedExtensionsImage")));
- deniedExtensions.put("Image",stringToArrayList(getInitParameter("DeniedExtensionsImage")));
-
- allowedExtensions.put("Flash",stringToArrayList(getInitParameter("AllowedExtensionsFlash")));
- deniedExtensions.put("Flash",stringToArrayList(getInitParameter("DeniedExtensionsFlash")));
-
- if(debug) System.out.println("---- SimpleUploaderServlet initialization completed ----\r\n");
-
- }
-
-
-
-
-
-
-
-
-
-
-
- public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-
- if (debug) System.out.println("--- BEGIN DOPOST ---");
-
- response.setContentType("text/html; charset=UTF-8");
- response.setHeader("Cache-Control","no-cache");
- PrintWriter out = response.getWriter();
-
-
- String typeStr=request.getParameter("Type");
-
- String currentPath=baseDir;
-
-
-
-
- HttpSession session = request.getSession();
- if (session != null) {
- Object userid = session.getAttribute(USER_ID_KEY);
- if (userid != null) {
- currentPath = currentPath + (String) userid;
- }
- }
- currentPath = currentPath + "/" + typeStr;
-
-
- String currentDirPath = _rb.getString("htdocs_folder") + currentPath;
-
-
- File folder = new File(currentDirPath);
- if (!folder.exists()) {
- folder.mkdirs();
- }
-
-
-
-
- if (debug) System.out.println(currentDirPath);
-
- String retVal="0";
- String newName="";
- String fileUrl="";
- String errorMessage="";
-
- if(enabled) {
-
- ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
- try {
- List items = upload.parseRequest(request);
-
- Map fields=new HashMap();
-
- Iterator iter = items.iterator();
- while (iter.hasNext()) {
- FileItem item = (FileItem) iter.next();
- if (item.isFormField())
- fields.put(item.getFieldName(),item.getString());
- else
- fields.put(item.getFieldName(),item);
- }
- FileItem uplFile=(FileItem)fields.get("NewFile");
- String fileNameLong=uplFile.getName();
- fileNameLong=fileNameLong.replace(’\\’,’/’);
- String[] pathParts=fileNameLong.split("/");
- String fileName=pathParts[pathParts.length-1];
-
-
- String nameWithoutExt=getFileID();
- String ext=getExtension(fileName);
- fileName = nameWithoutExt + "." + ext;
- File pathToSave=new File(currentDirPath, fileName);
- fileUrl=currentPath+"/"+fileName;
- if(extIsAllowed(typeStr, ext)) {
- int counter=1;
- while(pathToSave.exists()){
- newName=nameWithoutExt+ "(" + counter + ")" + "." + ext;
- fileUrl=currentPath+"/"+newName;
- retVal="201";
- pathToSave=new File(currentDirPath, newName);
- counter++;
- }
- uplFile.write(pathToSave);
- }
- else {
- retVal="202";
- errorMessage="";
- if (debug) System.out.println("Invalid file type: " + ext);
- }
- }catch (Exception ex) {
- if (debug) ex.printStackTrace();
- retVal="203";
- }
- }
- else {
- retVal="1";
- errorMessage="This file uploader is disabled. Please check the WEB-INF/web.xml file";
- }
-
- out.println("<script type=\"text/javascript\">");
- out.println("window.parent.OnUploadCompleted("+retVal+",’"+fileUrl+"’,’"+newName+"’,’"+errorMessage+"’);");
- out.println("</script>");
- out.flush();
- out.close();
-
- if (debug) System.out.println("--- END DOPOST ---");
-
- }
-
-
-
-
-
- private static String getNameWithoutExtension(String fileName) {
- return fileName.substring(0, fileName.lastIndexOf("."));
- }
-
-
-
-
- private String getExtension(String fileName) {
- return fileName.substring(fileName.lastIndexOf(".")+1);
- }
-
-
-
-
-
- private ArrayList stringToArrayList(String str) {
-
- if(debug) System.out.println(str);
- String[] strArr=str.split("\\|");
-
- ArrayList tmp=new ArrayList();
- if(str.length()>0) {
- for(int i=0;i<strArr.length;++i) {
- if(debug) System.out.println(i +" - "+strArr[i]);
- tmp.add(strArr[i].toLowerCase());
- }
- }
- return tmp;
- }
-
-
-
-
-
- private boolean extIsAllowed(String fileType, String ext) {
-
- ext=ext.toLowerCase();
-
- ArrayList allowList=(ArrayList)allowedExtensions.get(fileType);
- ArrayList denyList=(ArrayList)deniedExtensions.get(fileType);
-
- if(allowList.size()==0)
- if(denyList.contains(ext))
- return false;
- else
- return true;
-
- if(denyList.size()==0)
- if(allowList.contains(ext))
- return true;
- else
- return false;
-
- return false;
- }
-
-
-
-
-
-
- private String getFileID() {
- int ranNum = RandomUtils.nextInt(10000);
- Calendar c = Calendar.getInstance();
- String year = String.valueOf(c.get(Calendar.YEAR));
- String month = StringUtils.leftPad(String.valueOf(c.get(Calendar.MONTH) + 1), 2, ’0’);
- String day = StringUtils.leftPad(String.valueOf(c.get(Calendar.DAY_OF_MONTH)), 2, ’0’);
- String ret = year + month + day + String.valueOf(ranNum);
-
- return ret;
- }
- }
/* * FCKeditor - The text editor for internet * Copyright (C) 2003-2005 Frederico Caldeira Knabben * * Licensed under the terms of the GNU Lesser General Public License: * http://www.opensource.org/licenses/lgpl-license.php * * For further information visit: * http://www.fckeditor.net/ * * File Name: SimpleUploaderServlet.java * Java File Uploader class. * * Version: 2.3 * Modified: 2005-08-11 16:29:00 * * File Authors: * Simone Chiaretta (simo@users.sourceforge.net) */ package com.fredck.FCKeditor.uploader; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; import java.util.Hashtable; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.ResourceBundle; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.RandomUtils; /** * Servlet to upload files.<br> * * This servlet accepts just file uploads, eventually with a parameter specifying file type * * @author Simone Chiaretta (simo@users.sourceforge.net) */ public class SimpleUploaderServlet extends HttpServlet { private static String baseDir; private static boolean debug=false; private static boolean enabled=false; private static Hashtable allowedExtensions; private static Hashtable deniedExtensions; private static ResourceBundle _rb = ResourceBundle.getBundle("resource.uprush"); /** * UserID session key */ private static final String USER_ID_KEY = "USER_ID_MEMO"; /** * Initialize the servlet.
* Retrieve from the servlet configuration the "baseDir" which is the root of the file repository:
* If not specified the value of "/UserFiles/" will be used.
* Also it retrieve all allowed and denied extensions to be handled. * */ public void init() throws ServletException { debug=(new Boolean(getInitParameter("debug"))).booleanValue(); if(debug) System.out.println("\r\n---- SimpleUploaderServlet initialization started ----"); baseDir=getInitParameter("baseDir"); enabled=(new Boolean(getInitParameter("enabled"))).booleanValue(); if(baseDir==null) baseDir="/UserFiles/"; // String realBaseDir=getServletContext().getRealPath(baseDir); String htdocDir = _rb.getString("htdocs_folder"); // File baseFile=new File(realBaseDir); File baseFile=new File(htdocDir + baseDir); if(!baseFile.exists()){ baseFile.mkdir(); } allowedExtensions = new Hashtable(3); deniedExtensions = new Hashtable(3); allowedExtensions.put("File",stringToArrayList(getInitParameter("AllowedExtensionsFile"))); deniedExtensions.put("File",stringToArrayList(getInitParameter("DeniedExtensionsFile"))); allowedExtensions.put("Image",stringToArrayList(getInitParameter("AllowedExtensionsImage"))); deniedExtensions.put("Image",stringToArrayList(getInitParameter("DeniedExtensionsImage"))); allowedExtensions.put("Flash",stringToArrayList(getInitParameter("AllowedExtensionsFlash"))); deniedExtensions.put("Flash",stringToArrayList(getInitParameter("DeniedExtensionsFlash"))); if(debug) System.out.println("---- SimpleUploaderServlet initialization completed ----\r\n"); } /** * Manage the Upload requests.
* * The servlet accepts commands sent in the following format:
* simpleUploader?Type=ResourceType
* It store the file (renaming it in case a file with the same name exists) and then return an HTML file * with a javascript command in it. * */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (debug) System.out.println("--- BEGIN DOPOST ---"); response.setContentType("text/html; charset=UTF-8"); response.setHeader("Cache-Control","no-cache"); PrintWriter out = response.getWriter(); String typeStr=request.getParameter("Type"); String currentPath=baseDir; // upload フォルダを 「/${htdocs}/UserFiles/userid/type」 にする // 会員ID HttpSession session = request.getSession(); if (session != null) { Object userid = session.getAttribute(USER_ID_KEY); if (userid != null) { currentPath = currentPath + (String) userid; } } currentPath = currentPath + "/" + typeStr; // String currentDirPath=getServletContext().getRealPath(currentPath); String currentDirPath = _rb.getString("htdocs_folder") + currentPath; // フォルダが存在しない場合、フォルダを作成する File folder = new File(currentDirPath); if (!folder.exists()) { folder.mkdirs(); } // fileUrl を ${htdocs_folder} の相対パスにする // currentPath=request.getContextPath()+currentPath; if (debug) System.out.println(currentDirPath); String retVal="0"; String newName=""; String fileUrl=""; String errorMessage=""; if(enabled) { // DiskFileUpload upload = new DiskFileUpload(); ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory()); try { List items = upload.parseRequest(request); Map fields=new HashMap(); Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) fields.put(item.getFieldName(),item.getString()); else fields.put(item.getFieldName(),item); } FileItem uplFile=(FileItem)fields.get("NewFile"); String fileNameLong=uplFile.getName(); fileNameLong=fileNameLong.replace(’\\’,’/’); String[] pathParts=fileNameLong.split("/"); String fileName=pathParts[pathParts.length-1]; // create unique filename 「yyyymmddzzzz.ext」 String nameWithoutExt=getFileID(); String ext=getExtension(fileName); fileName = nameWithoutExt + "." + ext; File pathToSave=new File(currentDirPath, fileName); fileUrl=currentPath+"/"+fileName; if(extIsAllowed(typeStr, ext)) { int counter=1; while(pathToSave.exists()){ newName=nameWithoutExt+ "(" + counter + ")" + "." + ext; fileUrl=currentPath+"/"+newName; retVal="201"; pathToSave=new File(currentDirPath, newName); counter++; } uplFile.write(pathToSave); } else { retVal="202"; errorMessage=""; if (debug) System.out.println("Invalid file type: " + ext); } }catch (Exception ex) { if (debug) ex.printStackTrace(); retVal="203"; } } else { retVal="1"; errorMessage="This file uploader is disabled. Please check the WEB-INF/web.xml file"; } out.println(" "); out.flush(); out.close(); if (debug) System.out.println("--- END DOPOST ---"); } /* * This method was fixed after Kris Barnhoorn (kurioskronic) submitted SF bug #991489 */ private static String getNameWithoutExtension(String fileName) { return fileName.substring(0, fileName.lastIndexOf(".")); } /* * This method was fixed after Kris Barnhoorn (kurioskronic) submitted SF bug #991489 */ private String getExtension(String fileName) { return fileName.substring(fileName.lastIndexOf(".")+1); } /** * Helper function to convert the configuration string to an ArrayList. */ private ArrayList stringToArrayList(String str) { if(debug) System.out.println(str); String[] strArr=str.split("\\|"); ArrayList tmp=new ArrayList(); if(str.length()>0) { for(int i=0;i |