三周前,接手这个任务,因为当时手头有其他工作,就没着急做这个,周一的时候在后台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,里面定义很多种方法分别处理图片上传,附件上传等等内容。晕啦 现在就到这步了,难道要把已经实现好的上传功能全部删除了,再修改吗??疯了,太费事了,关键是没思路啊 哪位知道,麻烦指点下 感激不尽!!!