三周前,接手这个任务,因为当时手头有其他工作,就没着急做这个,周一的时候在后台newinfo 的内容栏添加上了Ueditor,当天就完成了文本到后台的保存。因为当时刚接触这个,再加上本人水平较渣,没看官方使用说明,直接就上手了。碰到问题就百度,众说纷纭,搞得我也是一头雾水。 再后来就做图片上传了,一百度,资料一大堆,但后来才发现他们都是因为使用struts2,为了避免走struts自身的fileupload而添加了过滤器。这是后来才知道的。。而我得到的上传代码如下
controller.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="com.baidu.ueditor.ActionEnter"
pageEncoding="UTF-8"%>
<%@ page trimDirectiveWhitespaces="true" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
request.setCharacterEncoding( "utf-8" );
response.setHeader("Content-Type" , "text/html");
String rootPath = application.getRealPath( "/" );
String actionName = request.getParameter("action");
if("uploadimage".equals(actionName)){
String temp = "";
//out.write(" {\"original\":\"demo.jpg\",\"name\":\"demo.jpg\",\"url\":\"ttt.jpg\",\"size\":\"99697\",\"type\":\".jpg\",\"state\":\"SUCCESS\"} ") ;
%>
<s:action namespace="/productinfo" name="uploadImg" executeResult="true" />
<%
}
else{
String s = new ActionEnter( request, rootPath ).exec();
out.write(s) ;
}
%>
upload.java
/**
* 详情信息图片上传
*/
public String uploadImg() throws Exception{
log.debug("");
//{"original":"demo.jpg","name":"demo.jpg","url":"\/server\/ueditor\/upload\/image\/demo.jpg","size":"99697","type":".jpg","state":"SUCCESS"}
String fileName = UUIDHexGenerator.getUUIDHex() +".jpg";
String pathFileName = getWebRootRealPath() + Constant.PRODUCT_DETAIL_IMGEDIR + fileName;
FileTool.saveFile(pathFileName, upfile);
uVO = new UploadImgVO();
uVO.setOriginal(upfileFileName);
uVO.setName(fileName);
uVO.setUrl(getWebBathPath() + "img/detail/" + fileName);
uVO.setSize(upfile.length()+"");
uVO.setType(".jpg");
uVO.setState("SUCCESS");
JSONObject jsonObject = JSONObject.fromObject(uVO);
msg = jsonObject.toString();
return SUCCESS;
}
这时候,我就一头雾水的改呀改,改呀改,最后改的它也不走后台的action了,添加了个过滤器,Ueditor自己就完成了。具体怎么实现的,我还不是很明白。
然后我就开始编辑内容框的内容,到后台获取,结果发现,后台通过 String myEditor = request.getParameter("myEditor"); 获取到的居然是html代码,我早该想到的,但是。。。。。
然后又发现上传的东西可能包括文本,图片,附件,表情,等等,通过后台一个方法绝对是实现不了的,于是我就死心了。。已处于崩溃边缘。。。。又回到原始状态了,不能用过滤器,必须写个action,里面定义很多种方法分别处理图片上传,附件上传等等内容。晕啦 现在就到这步了,难道要把已经实现好的上传功能全部删除了,再修改吗??疯了,太费事了,关键是没思路啊 哪位知道,麻烦指点下 感激不尽!!!