KindEditor 3.5.2 + Struts1 上传图片

不多说直接上代码:

首先,定义ImageForm用来接收KindEditor中form中的数据

package com.morefuntek.bean;

import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;

public class ImageForm extends ActionForm {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String id = "";
	private String url = "";
	private String imgTitle = "";
	private FormFile imgFile;
	private String imgWidth = "";
	private String imgHeight = "";
	private String filePath = "";
	private String align = "";
	private String imgBorder = "";

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public String getImgTitle() {
		return imgTitle;
	}

	public void setImgTitle(String imgTitle) {
		this.imgTitle = imgTitle;
	}

	public FormFile getImgFile() {
		return imgFile;
	}

	public void setImgFile(FormFile imgFile) {
		this.imgFile = imgFile;
	}

	public String getImgWidth() {
		return imgWidth;
	}

	public void setImgWidth(String imgWidth) {
		this.imgWidth = imgWidth;
	}

	public String getImgHeight() {
		return imgHeight;
	}

	public void setImgHeight(String imgHeight) {
		this.imgHeight = imgHeight;
	}

	public String getFilePath() {
		return filePath;
	}

	public void setFilePath(String filePath) {
		this.filePath = filePath;
	}

	public String getAlign() {
		return align;
	}

	public void setAlign(String align) {
		this.align = align;
	}

	public String getImgBorder() {
		return imgBorder;
	}

	public void setImgBorder(String imgBorder) {
		this.imgBorder = imgBorder;
	}

}

 其次:定义action处理接收的表单数据,并返回相应的提示信息给前台页面!

package com.morefuntek.actions;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

import com.morefuntek.bean.ImageForm;
import com.morefuntek.listener.ApplicationListener;

public class ImageAction extends Action {

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {

		ImageForm imageForm = (ImageForm) form;
		FormFile imagebean = imageForm.getImgFile();
		String imageName = imagebean.getFileName();
		System.out.println("上传文件:" + imageName);
		String path = ApplicationListener.image_file_path + "/" + imageName;
		InputStream in = null;
		FileOutputStream out = null;
		byte[] bytes = new byte[1024];
		try {
			in = imagebean.getInputStream();
			out = new FileOutputStream(path);
			int bytesnum = 0;
			while ((bytesnum = in.read(bytes)) != -1) {
				out.write(bytes, 0, bytesnum);
				out.flush();
			}
		} catch (Exception err) {

		} finally {
			try {
				in.close();
				out.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		String url = "imageResource/" + imageName;

		String temp = "parent.KE.plugin[\"image\"].insert(\'"
				+ imageForm.getId() + "','" + url + "','"
				+ imageForm.getImgTitle() + "','" + imageForm.getImgWidth()
				+ "','" + imageForm.getImgHeight() + "','"
				+ imageForm.getImgBorder() + "');";
		StringBuffer sb = new StringBuffer();
		sb.append("<html>");
		sb.append("<head>");
		sb.append("<title>Insert Image</title>");
		sb.append("<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">");
		sb.append("</head>");
		sb.append("<body>");
		sb.append("<script type=\"text/javascript\">" + temp + ";</script>");
		sb.append("</body>");
		sb.append("</html>");		

		try {// 输出ajax内容			
			response.setHeader("Content-Type", "text/html;charset=UTF-8");
			response.getWriter().write(sb.toString());
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}

}

 jsp页面代码:

<script type="text/javascript" charset="utf-8"
	src="<%=path%>/editor/kindeditor-min.js"></script>
<script type="text/javascript">
	KE.show({
		id : 'content1',
		width : '100%',
		resizeMode : 1,
		imageUploadJson : '<%=path%>/newImage.do',	
		allowFileManager : true,
		afterCreate : function(id) {
			KE.event.ctrl(document, 13, function() {
				KE.util.setData(id);
				document.forms['example'].submit();
			});
			KE.event.ctrl(KE.g[id].iframeDoc, 13, function() {
				KE.util.setData(id);
				document.forms['example'].submit();
			});
		}
	});
	
	function sub() {
		document.forms[0].submit();
	}
</script>

全部搞定ok!

你可能感兴趣的:(JavaScript,apache,bean,Ajax,struts)