将旧版本的 eWebEditor 从 ASP 版改造为 JSP 版

本文介绍如何将eWebEditor5.2的上传功能从ASP迁移到Java。主要步骤包括修改上传表单的请求路径,并用Java实现新的上传功能,确保上传成功后能够返回特定JavaScript代码以通知客户端。
之前一个旧网站项目改版,发布系统的编辑器使用的 eWebEditor 5.2,开发语言是 ASP 的。
现在要用 Java 重新写,其他所有东西都不变。其他都好说,唯独这个编辑器的改造出了点小麻烦。

其实也不算很难,主要是对它不熟悉,后来看了一下源代码,才发现还是很简单的,改一点点就可以了。
核心的东西就改一下编辑器的上传的功能,其他不需要改动。方法如下:

1、首先找到上传的表单,将请求的路径改为 JSP 的路径。
dialog 目录下 dialog.js 文件中 getUploadForm 方法

var n_MaxSize = parseFloat(s_MaxSize)*1024;
var html = "<iframe name='myuploadformtarget' style='display:none;position:absolute;width:0px;height:0px' src='blank.htm'></iframe>"
+"<form action='../uploadfile.do?type="+s_Type+"' method=post name=myuploadform enctype='multipart/form-data' style='margin:0px;padding:0px;width:100%;border:0px' target='myuploadformtarget'>"
+"<input type=file name='uploadfile' size=1 style='width:100%' onchange=\"this.form.originalfile.value=this.value;try{doPreview();} catch(e){}\">"
+"<input type=hidden name='originalfile' value=''>"
+"</form>";

上传文件都使用了统一的一个表单,至于是什么类型的文件,通过参数 s_Type 区分。


2、修改好请求路径后,我们用 Java 来实现上传的功能。
有一点要注意,上传文件成功后,要返回给浏览器端一段 JavaScript 代码,用来回调一些方法和提示用户信息。


String type = request.getParameter("type");// 取得上文件的类型
FileItem file = f.getFileItem("uploadfile");// 取得文件的对象,我自己修改的 fileupload 功能
if (file != null) {
String fileExt = file.getFileExt();// 修改文件名称,取得扩展名
fileName = DateUtil.getSimpleDateTime().concat(".").concat(fileExt);
if("media".equals(type)) {// 不同文件类型上传到服务器不同目录
fileName = "wmv/" + fileName;
}
fileName = fileName.toLowerCase();
file.write(uploadPath + fileName);// 写入文件
// 成功,返回的 JavaScript 代码
js = "<script language=javascript>parent.UploadSaved('" + contextPath + "/uploadfile/" + fileName + "');var obj=parent.dialogArguments.dialogArguments;if (!obj) obj=parent.dialogArguments;try{obj.addUploadFile('" + file.getName() + "', '" + fileName + "', '" + uploadPath+fileName + "');} catch(e){};history.back()</script>";
} else {
// 失败,返回的 JavaScript 代码
js = "<script language=javascript>parent.UploadError('size');</script>";
}
// 输出 JavaScript 代码
response.getWriter().print(js);
response.getWriter().flush();
response.getWriter().close();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值