FCKeditor 是一套非常不错的在线编辑器,它几乎囊括了现在网上所有的在线编辑器的功能,功能的实现相当完善,同时可自由定制功能按钮,支持多种语言环境下配置安装,现在http://sourceforge.net/上最新的版本是2.2,程序界面、功能相对2.0版本有较大的改进,但功能尚未完全实现,现在我用的还是2.0版本,我的FCKeditor 是在JSP环境下配置的,通过taglib实现调用,配置完界面如下:
讲完一些费话,现在回到文章的正题(FCKeditor+jspsmart实现文件上传),FCKeditor本身就带有文件上传组件,当然相对强大的jspsmart会逊色不少,正因为此,才萌发了用jspsmart替代现有的上传组件的想法,以下为详细的实现过程:
1.安装jspsmart,并调试成功!
2.修改/FCKeditor/filemanager/upload/jsp/upload.jsp 文件,把代码修改如下(声明:上传文件夹为/FCKeditor/filemanager/upload/jsp/upload/upload):
<%@page contentType="text/html; charset=gb2312" language="java" import="com.jspsmart.upload.*"%>
<jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload"/>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.*"%>
<%
java.util.Date myDate=new java.util.Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
String mDate=formatter.format(myDate);
try{
mySmartUpload.initialize(pageContext);
mySmartUpload.setAllowedFilesList("jpg,gif,jpeg,txt,doc,pdf,png");
mySmartUpload.setTotalMaxFileSize(300000);
mySmartUpload.upload();
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
if (!myFile.isMissing()) {
myFile.saveAs("/FCKeditor/filemanager/upload/jsp/upload/" + mDate + "." + myFile.getFileExt());
String sFileURL = "/local/FCKeditor/filemanager/upload/jsp/upload/" + mDate + "." + myFile.getFileExt() +"";
%>
<SCRIPT language=javascript>
window.opener.setImage('<%=sFileURL %>') ;
window.close() ;
</SCRIPT>
<%
}else{out.println("<b>错误信息 : </b> 请你选择文件再上传!");}
}catch (Exception e){
out.println("<b>错误信息 : </b>" + e.toString());
}
%>
2.修改/FCKeditor/filemanager/browse/sample_jsp/browse.jsp文件中的相关变量:
第18行:String imagesDir="/FCKeditor/filemanager/upload/jsp/upload/";
第41行:var sImagesPath = "/local/<%=selectedDir%>" ;//local为我当前tomcat的一个Context。
第83行:<IMG src="/local<%=selectedDir%>spacer.gif" id="imgPreview" width="200">
3.ok!现在就可以通过jspsmart实现文件上传了,