欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

将旧版本的 eWebEditor 从 ASP 版改造为 JSP 版 博客分类: Java[Script] aspjsp 

程序员文章站 2024-03-21 22:00:40
...

之前一个旧网站项目改版,发布系统的编辑器使用的 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();


相关标签: asp jsp