`

kindeditor的图片上传 struts2实现

阅读更多



 

 效果:

1、kindeditor下载:http://www.kindsoft.net/down.php

 

2、a:kindeditor安装:解压下载好的文件,把整个文件夹拷贝到工程目录下面,如:/WebRoot/kindeditor

     

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="kindeditor/kindeditor.js" charset="utf-8" ></script>
<title>Kindeditor实例</title>
<script type="text/javascript">
KE.show({
	id:'content', 	//下面的textarea的ID
	height:'300px',	
	resizeMode:0,	
	skinType:'default',
	autoOnsubmitMode:'true',
	imageUploadJson:'system/topic-uploadImage.action'   //上传图片的服务器处理地址,3.4版本以后支持
});
</script>
</head>
<body>
Kindeditor实例:
<textarea id="content" name="topicVO.content" cols="60" rows="25"></textarea>

<input type="button" id="publish_btn" value="提交"> 
</body>
</html>

  

   图片上传处理:

 

public class TopicAction{
	 /**
	 * 图片对象
	 */
	private File imgFile;
	
	/**
	 * 图片宽度
	 */
	private String imgWidth;
	
	/**
	 * 图片高度
	 */
	private String imgHeight;
	
	/**
	 * 图片对齐方式
	 */
	private String align;
	
	/**
	 * 图片标题
	 */
	private String imgTitle;
	
	public File getImgFile() {
		return imgFile;
	}

	public void setImgFile(File 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 getAlign() {
		return align;
	}

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

	public String getImgTitle() {
		return imgTitle;
	}

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

                /**
	 * 上传图片
	 * @return
	 */
	public String uploadImage(){
		UserVO user = (UserVO) session.getAttribute(Constants.USER_KEY);
		String imageName = user.getId()+"_topic_"+new Date().getTime()+Math.random()*10000+".jpg";
		File dirPath =new File(request.getSession().getServletContext().getRealPath("/")+"\\upload\\articleimage\\");
		//如果文件夹不存在,创建它
		if(!dirPath.exists()){
			dirPath.mkdirs();
		}
		//文件存放路径
		String newPath = dirPath+"\\"+imageName;   
		//上传文件
		try {
			copy(imgFile, newPath);
		} catch (Exception e1) {
			e1.printStackTrace();
		}   
		
		String id = "content";   
        		String url = "http://" + request.getServerName() + ":"+ request.getServerPort() + request.getContextPath() 
        		+"/upload/articleimage/" + imageName;   

		String border = "0";   
		String result = 
			"<script type=\"text/javaScript\">parent.KE.plugin[\"image\"].insert(\""  
                + id   
                + "\",\""  
                + url   
                + "\",\""  
                + imgTitle   
                + "\",\""  
                + imgWidth   
                + "\",\"" 
                + imgHeight 
                + "\",\"" 
                + border + "\"" 
                +");</script>";   
		PrintWriter out = null;
		try {
			out = encodehead(request, response);
		} catch (IOException e) {
			e.printStackTrace();
		}
		out.write(result);
		out.close(); 
		return null;
	}
	
	/**  
     * 拷贝文件  
     *   
     * @param upload文件流  
     * @param newPath新文件路径和名称  
     * @throws Exception  
     */  
	private void copy(File upload, String newPath) throws Exception {   
        FileOutputStream fos = new FileOutputStream(newPath);   
        FileInputStream fis = new FileInputStream(upload);   
        byte[] buffer = new byte[1024];   
        int len = 0;   
        while ((len = fis.read(buffer)) > 0) {   
            fos.write(buffer, 0, len);   
        }   
        fos.close();   
        fis.close();   
    }  
	
	/**
	 * Ajax辅助方法 获取 PrintWriter
	 * @return
	 * @throws IOException 
	 * @throws IOException 
	 * request.setCharacterEncoding("utf-8");
		response.setContentType("text/html; charset=utf-8");
	 */
	private PrintWriter encodehead(HttpServletRequest request,HttpServletResponse response) throws IOException{
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html; charset=utf-8");
		return response.getWriter();
	}

}

 注意:上面action中的imgFile、imgWidth、imgHeight、align、imgTitle名字不要改,因为在struts2中需要这里跟form表单中的name属性一致,如果你非要改,那么也得把kindeditor中的image.html中的属性改一下,最好不要改源码!

 

 附录:http://www.kindsoft.net/doc.php?cmd=config

 调用KE.showKE.init时可以设置以下参数。

  1. id
    TEXTAREA输入框的ID,必须设置。
    数据类型:String
  2. items
    配置编辑器的工具栏,其中"-"表示换行,"|"表示分隔符。
    数据类型:Array
    默认值:
    ['source', '|', 'fullscreen', 'undo', 'redo', 'print', 'cut', 'copy', 'paste',
    'plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter', 'justifyright',
    'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript',
    'superscript', '|', 'selectall', '-',
    'title', 'fontname', 'fontsize', '|', 'textcolor', 'bgcolor', 'bold',
    'italic', 'underline', 'strikethrough', 'removeformat', '|', 'image',
    'flash', 'media', 'table', 'hr', 'emoticons', 'link', 'unlink', '|', 'about']
              
  3. width
    编辑器的宽度,可以设置px或%,比TEXTAREA输入框样式表宽度优先度高。
    数据类型:String
    默认值:TEXTAREA输入框的宽度
    注: 3.2版本开始支持。
  4. height
    编辑器的高度,只能设置px,比TEXTAREA输入框样式表高度优先度高。
    数据类型:String
    默认值:TEXTAREA输入框的高度
    注: 3.2版本开始支持。
  5. minWidth
    数据类型:Int
    指定编辑器最小宽度,单位为px。
    默认值:200
  6. minHeight
    数据类型:Int
    指定编辑器最小高度,单位为px。
    默认值:100
  7. filterMode
    数据类型:Boolean
    true时过滤HTML代码,false时允许输入任何代码。
    默认值:false
    注: 3.4以前版本的filterMode默认值为true。
  8. htmlTags
    指定要保留的HTML标记和属性。哈希数组的key为HTML标签名,value为HTML属性数组,"."开始的属性表示style属性。
    数据类型:Object
    默认值:
    {
            font : ['color', 'size', 'face', '.background-color'],
            span : ['style'],
            div : ['class', 'align', 'style'],
            table: ['class', 'border', 'cellspacing', 'cellpadding', 'width', 'height', 'align', 'style'],
            'td,th': ['class', 'align', 'valign', 'width', 'height', 'colspan', 'rowspan', 'bgcolor', 'style'],
            a : ['class', 'href', 'target', 'name', 'style'],
            embed : ['src', 'width', 'height', 'type', 'loop', 'autostart', 'quality',
    'style', 'align', 'allowscriptaccess', '/'],
            img : ['src', 'width', 'height', 'border', 'alt', 'title', 'align', 'style', '/'],
            hr : ['class', '/'],
            br : ['/'],
            'p,ol,ul,li,blockquote,h1,h2,h3,h4,h5,h6' : ['align', 'style'],
            'tbody,tr,strong,b,sub,sup,em,i,u,strike' : []
    }
              
    注:filterMode为true时有效。3.4版本开始属性可设置style,保留所有inline样式。
  9. resizeMode
    2或1或0,2时可以拖动改变宽度和高度,1时只能改变高度,0时不能拖动。
    数据类型:Int
    默认值:2
  10. skinType
    风格类型,default或tinymce。
    数据类型:String
    默认值:default
    注:3.4以前版本和3.4.1版本开始默认值为default,3.4版本的默认值为oxygen。
  11. wyswygMode
    可视化模式或代码模式
    数据类型:Boolean
    默认值:true
  12. cssPath
    指定编辑器iframe document的CSS,用于设置可视化区域的样式。
    数据类型:String或Array
    默认值:空
    注:3.4.1版本开始可指定多个CSS文件。例如:cssPath : ['a.css', 'b.css']
  13. skinsPath
    指定编辑器的skins目录,skins目录存放风格的css文件和gif图片。
    数据类型:String
    默认值:KE.scriptPath + 'skins/'
  14. pluginsPath
    指定编辑器的plugins目录。
    数据类型:String
    默认值:KE.scriptPath + 'plugins/'
  15. minChangeSize
    undo/redo文字输入最小变化长度,当输入的文字变化小于这个长度时不会添加到undo堆栈里。
    数据类型:Int
    默认值:5
  16. loadStyleMode
    true时自动加载编辑器的CSS。
    数据类型:Boolean
    默认值:true
    注: 3.4版本开始支持。
  17. urlType
    改变站内本地URL,可设置空、relative、absolute、domain。空为不修改URL,relative为相对路径,absolute为绝对路径,domain为带域名的绝对路径。
    数据类型:String
    默认值:空
    注: 3.4版本开始支持,3.4.1版本开始默认值为空。
  18. newlineTag
    设置回车换行标签,可设置p、br。
    数据类型:String
    默认值:br
    注: 3.4版本开始支持。
  19. afterCreate
    设置编辑器创建后执行的回调函数。
    数据类型:Function
    默认值:无
  20. afterDialogCreate
    设置弹出浮动框创建后执行的回调函数。
    数据类型:Function
    默认值:无
    注: 3.4.3版本开始支持。
  21. allowUpload
    true或false,true时显示上传图片标签。
    数据类型:Boolean
    默认值:true
    注: 3.4版本开始支持。
  22. allowFileManager
    true或false,true时显示浏览服务器图片功能。
    数据类型:Boolean
    默认值:false
    注: 3.4版本开始支持。
  23. referMethod
    设置referMethod后上传图片的POST参数里有referMethod。
    数据类型:String
    默认值:空
    注: 3.4版本开始支持。
  24. dialogAlignType
    设置弹出框(dialog)的对齐类型,可设置page和空,指定page时按当前页面居中,指定空时按编辑器居中。
    数据类型:String
    默认值:page
    注: 3.4.1版本开始支持。
  25. imageUploadJson
    指定上传图片的服务器端程序。
    数据类型:String
    默认值:../../php/upload_json.php
    注: 3.4.1版本开始支持。
  26. fileManagerJson
    指定浏览远程图片的服务器端程序。
    数据类型:String
    默认值:../../php/file_manager_json.php
    注: 3.4.1版本开始支持。

 

  • 大小: 20.5 KB
  • 大小: 121.4 KB
分享到:
评论
4 楼 263482604 2013-05-26  
楼主能给子小demo吗?我没有搞出来
3 楼 chenjun296 2010-10-05  
其实不需要自己写那insert的方法,直接返回json格式的数据就行,返回类型是html/txt而不是json,否则会报错
2 楼 给太阳洒水 2010-07-09  
talent210 写道
目前我也正在做这个
用在了 千山千水旅游网 http://www.isansui.com 上
发现一个BUG,如果WIDTH HEIGHT不设置,那么就是0,根本看不出来的嘛
不设置就是原图片啊,怎么会是0,建议你到官网上下载,还有自己手动到后天控制一下长宽!
1 楼 talent210 2010-07-09  
目前我也正在做这个
用在了 千山千水旅游网 http://www.isansui.com 上
发现一个BUG,如果WIDTH HEIGHT不设置,那么就是0,根本看不出来的嘛

相关推荐

    kindeditor图片上传 struts2实现

    &lt;title&gt;KindEditor图片上传 &lt;script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.12.4/jquery.min.js"&gt;&lt;/script&gt; ...

    kindeditor上传视频、图片功能实现

    1. **KindEditor的图片上传功能**: KindEditor内建了图片上传的功能,用户可以通过点击编辑器内的“图片”按钮打开图片上传对话框。这个功能通常通过Ajax异步方式与服务器进行交互,将图片文件上传到指定的服务器...

    KindEditor-4.1.9批量上传图片完整示例(可以上传到image目录下的子目录中,可返回上一级目录,并实现了按名称、大小、类型排序的功能)

    这是本人写的一个基于KindEditor-4.1.9的Java项目,采用Struts2框架,实现了KindEditor单张图片上传、批量图片上传,可以上传到image目录下的子目录中,可返回上一级目录,并实现了按名称、大小、类型排序的功能。...

    kindeditor-v4.0.6 Struts2修订版

    KindEditor是一款流行的开源富文本编辑器,它提供了多种格式的文字编辑、图片上传、表格处理等功能,广泛应用于Web内容管理系统和论坛等场景。Struts2则是一个强大的Java Web开发框架,基于Model-View-Controller...

    kindeditor整合struts2 并且增加删除图片功能

    在Struts2的配置文件(通常为struts.xml)中,定义一个Action类,处理图片上传和删除的操作。例如: ```xml &lt;param name="contentType"&gt;image/jpeg &lt;param name="inputName"&gt;fileInputStream ...

    Myeclipse struts2框架的文本在线编辑器kindeditor-4.1.9

    而KindEditor是一款功能强大的开源在线文本编辑器,适用于网页中创建富文本内容,支持图片上传、多图上传等功能,广泛应用于网站内容管理、博客系统等项目。 在MyEclipse中集成Struts2和KindEditor,首先需要确保已...

    struts2版kindeditor

    在Struts2框架下集成KindEditor,可以方便地实现文本编辑、图片上传、资源浏览等功能,极大地提升用户体验。 **一、Struts2与KindEditor的结合** 1. **集成目的**:Struts2框架通常用于处理服务器端逻辑,而...

    struts2image kindeditor

    在Struts2应用中集成KindEditor,可以实现用户友好的内容编辑界面。首先,你需要在Web页面上引入KindEditor的JavaScript和CSS资源,然后配置Struts2的Action来接收并处理KindEditor提交的数据。例如,对于图片上传,...

    自己实现的简单weike系统(ssh+kindEditor)

    这个项目是一个自建的简易威客(weike)平台,它采用SSH(Spring、Struts2、Hibernate)框架进行开发,并集成了KindEditor作为富文本编辑器。SSH框架是Java Web开发中常用的三大开源框架组合,它们各自负责不同的...

    KindEditor富文本框图片上传

    KindEditor通过内置的图片上传插件,实现了这一功能。该功能通常由两部分组成:前端的上传界面和后端的处理逻辑。 前端部分,KindEditor的图片上传功能通常会有一个按钮或一个简单的文件选择器,用户可以通过点击...

    java平台下kindeditor的文件上传

    在Java环境中集成KindEditor,主要是为了实现用户在编辑器中插入图片、文档等文件的功能。 首先,了解KindEditor的工作原理。KindEditor通过AJAX方式将用户选择的文件上传到服务器,然后返回文件的URL,编辑器会将...

    kindeditor文本编辑器案例(java版+struts2源代码)

    总结,这个"kindeditor文本编辑器案例(java版+struts2源代码)"是一个很好的学习资源,可以帮助开发者快速理解和实现基于Java和Struts2的在线文本编辑功能。通过深入研究案例中的源代码,可以提升对前后端交互、文件...

    Uploadify + Struts2 实现文件上传详解

    【Uploadify + Struts2 实现文件上传详解】 在Web开发中,文件上传是一个常见的功能需求,尤其是在内容管理系统、论坛或者其他需要用户提交图片、文档等资料的场景。Uploadify是一款基于jQuery的文件上传插件,它...

    kindeditor示例

    这里的`uploadJson`和`fileManagerJson`属性是配置上传图片或文件的处理路径,你需要在Struts2中定义相应的Action来处理这些请求。 在Struts2 Action中,我们需要接收并处理来自KindEditor的POST请求,包括富文本...

    kindeditor编辑器使用及压缩包

    此外,对于Java开发者来说,KindEditor可以与Spring MVC、Struts2等框架无缝集成。在后端,可以使用Java来处理编辑器提交的富文本内容,进行HTML过滤、格式转换等操作,以保证数据的安全性和一致性。 总之,...

    kindEditor4.12 JSP

    在实际开发中,可能还会遇到如编辑器与后端框架(如Spring、Struts等)的集成问题,以及如何处理图片和文件的访问权限等挑战。为了解决这些问题,开发者需要对JSP、Servlet和前端JavaScript有深入的理解,并灵活运用...

    ssh rest ws jax-rs jersey 做的小网站后台及web service接口

    6. **KindEditor**:是一个开源的JavaScript富文本编辑器,提供了多种编辑功能,如字体、字号、颜色、图片上传等,用于网站后台的内容编辑。 7. **GroupUploader**:这是一款JavaScript多文件上传组件,允许用户一...

    韩某某 软件开发工程师2年_嵌入式_java简历_程序员简历模板_计算机相关专业.docx

    * 新世纪网上商城项目:了解电商系统的开发和实现,从后台商品图片上传到前台用户浏览、搜索和下单等操作 * 山西通四方物流系统项目:了解 BS 架构的自动化实现,了解系统管理、基础设置、受理、调度、中转配送流程...

    java2年工作经验简历_java简历.docx

    - 系统后台的商品图片上传功能开发。 - 商品添加功能的实现。 - 商城首页的展示设计。 - 商品搜索功能的开发。 2. **山西通四方物流系统**(2015/2-2015/10):项目基于BS架构,利用Struts2、Hibernate、Spring...

Global site tag (gtag.js) - Google Analytics