KindEditor的使用和上传图片的后台处理

应用环境:struts2,jsp。IE8下测试通过。

kindeditor版本为3.5.4,官网下载后解压,取plugins、skins文件夹和kindeditor.js置于Web工程的WebRoot下。本文仅简单介绍如何使用kindeditor,并实现图片上传功能,页面上的提交功能未予实现。

先来看页面

[java] view plaincopy
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
<%  
String path = request.getContextPath();  
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%>  
  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>  
  <head>  
    <base href="<%=basePath%>">  
      
    <title>kindeditor测试页面</title>  
      
    <meta http-equiv="pragma" content="no-cache">  
    <meta http-equiv="cache-control" content="no-cache">  
    <meta http-equiv="expires" content="0">      
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
    <meta http-equiv="description" content="This is my page">  
<script type="text/javascript" src="${pageContext.request.contextPath}/component/kindeditor/kindeditor.js"></script>  
    <script type="text/javascript">  
    KE.show({     
        id:‘content‘,   //下面的textarea的ID     
        height:‘500px‘,      
        resizeMode:0,        
        skinType:‘default‘,     
        autoOnsubmitMode:‘true‘,  
           
        //items选项可以去掉你不想要的功能,比如此处去掉上传flash的功能。没有这一项则默认开启所有功能  
        items : [  
            ‘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‘,  
            ‘advtable‘, ‘hr‘, ‘emoticons‘, ‘link‘, ‘unlink‘, ‘|‘, ‘about‘  
        ],  
        imageUploadJson:‘${pageContext.request.contextPath}/component/kindeditor/uploadImage.do‘  
    });   
    </script>   
  </head>  
    
  <body>  
    kindeditor测试页面 <br>  
    <form id="example" method="post" action="${pageContext.request.contextPath}/component/kindeditor/preview.do"> 
      <textarea id="content" name="content" style="width:700px;height:300px;visibility:hidden;"><br />  
      <input type="submit" value="提交内容"/> (提交快捷键: Ctrl + Enter)  
      </form>  
  </body>  
</html>

后台程序的处理

[java] view plaincopy
package org.wusq.ssx.component.kindeditor;  
  
import java.io.File;  
import java.io.FileNotFoundException;  
import java.io.IOException;  
import java.io.PrintWriter;  
import java.io.UnsupportedEncodingException;  
import java.util.Date;  
  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
  
import org.apache.struts2.ServletActionContext;  
import org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper;  
import org.springframework.stereotype.Controller;  
import org.wusq.ssx.util.ImageUtils;  
  
import com.opensymphony.xwork2.ActionSupport;  
  
/** 
 * KindEditor测试类 
 * @author wusq 
 * @since 2011-05-05 
 */  
@Controller  
public class KindEditor extends ActionSupport{  
      
    private static final long serialVersionUID = 6624518147834729694L;  
  
    //图片对象  
    private File imgFile;  
    //图片宽度  
    private String imgWidth;  
    //图片高度  
    private String imgHeight;  
    //图片对齐方式  
    private String align;  
    //图片标题  
    private String imgTitle;  
      
    public String uploadImage() throws Exception{  
        MultiPartRequestWrapper wrapper = (MultiPartRequestWrapper) ServletActionContext.getRequest();  
          
        //获得图片名字  
        String imgName = wrapper.getFileNames("imgFile")[0];  
          
        //获得图片后缀名  
        String fileExt = imgName.substring(imgName.lastIndexOf(".")).toLowerCase();  
          
        //重新生成图片名字  
        String imgN = new Date().getTime() + fileExt;  
          
        //图片在服务器上的绝对路径。编辑器并没有提供删除图片功能,此路径以后可以用于后台程序对图片的操作  
        String serverPath = "D://Program Files//Apache Software Foundation//Tomcat 6.0//webapps//ssx//uploadimage//";  
        //页面的引用地址  
        String savePath = "http://127.0.0.1:8080/ssx/uploadimage/";  
        //实际应用中鉴于地址的可变性,此处的两个path可以动态生成或从配置文件读取  
          
        kEUploadImage(ServletActionContext.getRequest(), ServletActionContext.getResponse(), imgFile, imgTitle, imgWidth, imgHeight, imgN, savePath, serverPath);  
          
        return null;  
    }  
      
    void kEUploadImage(HttpServletRequest request, HttpServletResponse response, File imgFile, String imgTitle, String imgWidth, String imgHeight, String imgName, String savePath, String serverPath)   
            throws FileNotFoundException, IOException{  
          
        //将图片写入服务器  
        ImageUtils.uploadToServer(imgFile, serverPath, imgName);  
          
        //页面回显  
        String id = "content";  
        String url = savePath + imgName;  
        String border = "0";        
        String result ="<mce:script type=/"text/javaScript/"><!--  
parent.KE.plugin[/"image/"].insert(/""       
        + id        
        + "/",/""       
        + url        
        + "/",/""       
        + imgTitle        
        + "/",/""       
        + imgWidth        
        + "/",/""      
         + imgHeight      
        + "/",/""      
        + border + "/""      
        +");  
// --></mce:script>";        
        PrintWriter out = null;   
        out = encodehead(request, response);  
        out.write(result);     
        out.close();  
    }  
      
    PrintWriter encodehead(HttpServletRequest request,HttpServletResponse response){  
        try {  
            request.setCharacterEncoding("utf-8");     
            response.setContentType("text/html; charset=utf-8");     
            return response.getWriter();  
        } catch (UnsupportedEncodingException e) {  
            e.printStackTrace();  
            return null;  
        } catch (IOException e) {  
            e.printStackTrace();  
            return null;  
        }     
    }  
      
    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;  
    }  
}

引用的工具类

[java] view plaincopy
package org.wusq.ssx.util;  
  
import java.io.File;  
import java.io.FileInputStream;  
import java.io.FileNotFoundException;  
import java.io.FileOutputStream;  
import java.io.IOException;  
  
/** 
 * 图片处理工具类 
 * @author wusq 
 * @since 2011-05-05 
 */  
public class ImageUtils {  
      
    /** 
     * 图片上传到服务器的方法 
     * @param upload 图片文件 
     * @param serverPath 保存在服务器的路径 
     * @param imgName 图片名字 
     * @since 2011-05-05 
     */  
    public static void uploadToServer(File upload, String serverPath, String imgName) throws FileNotFoundException, IOException{        
            File dirPath = new File(serverPath);  
            if(!dirPath.exists()){  
                dirPath.mkdirs();  
            }  
            String path = dirPath + "//" + imgName;  
            FileOutputStream fos = new FileOutputStream(path);        
            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();  
    }  
}

转自:

时间: 2024-11-08 02:18:11

KindEditor的使用和上传图片的后台处理的相关文章

Android端上传图片到后台,存储到数据库中 详细代码

首先点击头像弹出popwindow,点击相册,相机,调用手机自带的裁剪功能,然后异步任务类访问服务器,上传头像,保存到数据库中, 下面写出popwindow的代码 //设置popwindow public PopupWindow getPopWindow(View view){ PopupWindow popupWindow=new PopupWindow(view, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParam

使用axios+formdata+vue上传图片遇到后台接受不到图片的值的问题

先直接贴代码 html代码如下: <input type="file"@change="getFileExpr($event)"> <el-form id="uploadForm" :rules="rules2" method="post" enctype="multipart/form-data"> 这个地方我是使用的element ui框架中的form组件 原

ajax异步上传图片&amp;SpringMVC后台代码

function uploadPic(){ var options = { url : "/upload/updatePic.action", type : "post", dataType : "json", success : function(data){ $("#allUrl").attr("src", data.url); $("#imgUrl").val(data.url);

base64编码上传图片java后台接收实例

原文地址:http://blog.csdn.net/tonyfreak/article/details/72522855 思路 前台传以data:image/jpeg;base64,开头的base64编码的String字符串,后台接收字符串以后先进行base64解码 .decodeBuffer(),转换成二进制编码,然后使用字节输出流FileOutputStream()将文件保存到指定目录下. 报下面的错误 Error parsing HTTP request header Note: furt

kindeditor上传图片

kindeditor上传本地图片 (2013-11-07 14:52:51)转载▼ 标签: kindeditor 本地上传 整理一下后台代码 @Action(value = "uploadFile") public String uploadFile(){ try { //文件保存目录路径    img_upload是服务器存储上传图片的目录名 String savePath = request.getSession().getServletContext() .getRealPath

移动端压缩并ajax上传图片解决方案

1.需求 做一个前端可压缩并且上传图片到后台的功能 2.使用组件 用到的主要是jq和LocalResizeIMG这2个库 3.使用方法 a.引入脚本文件 <script type='text/javascript' src='js/jquery-2.0.3.min.js'></script> <script type='text/javascript' src='js/LocalResizeIMG.js'></script> <script type=

UEditor中上传图片的步骤

1. 找到ueditor中ueditor.config.js 修改serverUrl属性值,    serverUrl: URL + "jsp/controller.jsp"        toolbars定义的是编辑器里显示的button 按钮组     2. 将ueditor/jsp中lib下的jar拷贝到WEB--INF下的lib下ueditor.config.js中的controller.jsp才可以用.   3.更改ueditor/1.4.3/dialogs/image下im

vue2.0集成百度UE编辑器,上传图片报错!!!

我这边配置进去之后,界面加载,文本输入都没有问题,就是上传图片会有问题 这张图, 左边红色框框 就是目录结构咯, 右边红色框框 就是各种网上教程给出的第一个路径配置对吧, 下面的就是绿色 服务器接口配置把? 这个我不是太清楚, 但是我上传图片的后台接口就是这么走的..... 这就是我在ueditor.config.js 里面做的两个唯一的配置! 然后另一个配置文件php/config.json也有相应的修改,截图如下: 右边红色框框嘛, 就是我认为的需要修改的路径吧~ 当然了,这里只涉及到了图片

httpclient 上传图片

背景:前端上传图片,后台接收到,转发给第三方系统或文件系统. jar包 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.5</version> </dependency> <dependency> <groupId>org.