服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|编程技术|正则表达式|C/C++|

服务器之家 - 编程语言 - JAVA教程 - java使用CKEditor实现图片上传功能

java使用CKEditor实现图片上传功能

2020-12-04 08:47努力做最好的自己 JAVA教程

这篇文章主要为大家详细介绍了java使用CKEditor实现图片上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

java如何使用ckeditor实现图片上传功能,具体内容如下

1.根据实际需要下载指定的ckeditor

java使用CKEditor实现图片上传功能

2.删除文件ckeditor/plugins/image/dialogs/image.js预览框中文本内容,并修改hidden属性值为显示上传选项卡

java使用CKEditor实现图片上传功能java使用CKEditor实现图片上传功能

删除image.js中包含在双引号中的上述文本

java使用CKEditor实现图片上传功能

将image.js中的hidden属性值改为0

java使用CKEditor实现图片上传功能

3.修改ckeditor/config.js文件,配置“上传到服务器”按钮调用的controller接口

java使用CKEditor实现图片上传功能

java使用CKEditor实现图片上传功能

4.“上传到服务器”按钮调用的controller级别的接口

 
?
1
 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
@controller
@requestmapping("publicutil")
public class publicutilcontroller {
 
@requestmapping(value = "uploadimage")
private void uploadimage(httpservletrequest request, httpservletresponse response, httpsession session,@requestparam multipartfile[] upload) {
   
 response.setcharacterencoding("utf-8");
 printwriter out=null;
 try {
  out = response.getwriter();
 } catch (ioexception e1) {
  logger.error("response.getwriter()异常="+e1);
  e1.printstacktrace();
 }
 string callback = request.getparameter("ckeditorfuncnum");
   
 // 获得response,request
 map<string, object> m = new hashmap<string, object>();
   
 if (!servletfileupload.ismultipartcontent(request)) {
  m.put("error", 1);
  m.put("message", "请选择文件!");
  //return m;
  logger.info("请选择文件!");
 }
   
 string originalfilename=null;//上传的图片文件名
 string fileextensionname=null;//上传图片的文件扩展名
 for (multipartfile file : upload) {
  if (file.getsize()> 10*1024* 1024) {
   out.println("<script type=\"text/javascript\">");
   out.println("window.parent.ckeditor.tools.callfunction(" + callback
      + ",''," + "'文件大小不得大于10m');");
   out.println("</script>");
     
  }
    
  originalfilename=file.getoriginalfilename();
  logger.info("上传的图片文件名="+originalfilename);
  fileextensionname= originalfilename.substring(
  originalfilename.lastindexof(".") ,originalfilename.length()).tolowercase();
  logger.info("图片文件扩展名="+fileextensionname);
    
  string[] imageextensionnamearray= websiteconstant.image_extension_name_array;
    
  string allimageextensionname="";
  boolean iscontain=false;//默认不包含上传图片文件扩展名
  for(int i=0;i<imageextensionnamearray.length;i++){
   if(fileextensionname.equals(imageextensionnamearray[i])){
    iscontain=true;
   
   if(i==0){
    allimageextensionname+=imageextensionnamearray[i];
   }else{
    allimageextensionname+=" , "+imageextensionnamearray[i];
   }
     
  }
    
  string newfilename=java.util.uuid.randomuuid().tostring()+fileextensionname;
  string uploadpath =websiteconstant.pic_app_file_system_ckeditor_location;
  if(iscontain){//包含  
   file pathfile = new file(uploadpath);
   if (!pathfile.exists()) { // 如果路径不存在,创建
    pathfile.mkdirs();
   }
   try {
    fileutils.copyinputstreamtofile(file.getinputstream(), new file(uploadpath ,newfilename));
//    inputstream is=file.getinputstream();
//    file tofile = new file(uploadpath, newfilename);
//    outputstream os = new fileoutputstream(tofile);
//    byte[] buffer = new byte[1024];
//    int length = 0;
//    while ((length = is.read(buffer)) > 0) {
//     os.write(buffer, 0, length);
//    }
//    is.close();
//    os.close();
   } catch (ioexception e) {
    logger.error("fileutils.copyinputstreamtofile uploadpath="+uploadpath+" newfilename ="+newfilename+" exception="+e);
   }
   string imageurl=websiteconstant.pic_app_server_url+"images/ckeditor/"+newfilename;
   // 返回"图像信息"选项卡并显示图片 ,在对应的文本框中显示图片资源url
   out.println("<script type=\"text/javascript\">");
   out.println("window.parent.ckeditor.tools.callfunction(" + callback
      + ",'" +imageurl + "','')");
   out.println("</script>");
     
  }else{
   out.println("<script type=\"text/javascript\">");
   out.println("window.parent.ckeditor.tools.callfunction(" + callback
      + ",''," + "'文件格式不正确(必须为"+allimageextensionname+"文件)');");
   out.println("</script>");
  }
 
 
 }
 
}
 
?
1
 
2
3
4
5
6
7
<span style="font-size:14px;">public class websiteconstant {
 
 public static string[] image_extension_name_array={".jpg",".jpeg",".png",".gif",".bmp"};
 public static string pic_app_server_url="http://localhost:8090/picture/";
 public static string pic_app_file_system_ckeditor_location="/users/abc/documents/tomcat/webapps/picture/images/ckeditor/";
 public static final int success = 1; // 操作成功
</span>

5.若是在maven项目中使用的ckeditor,需要在pom.xml中添加如下代码:

 
?
1
 
2
3
4
5
<dependency>
 <groupid>com.ckeditor</groupid>
 <artifactid>ckeditor-java-core</artifactid>
 <version>3.5.3</version>
</dependency>

6.最终效果图

java使用CKEditor实现图片上传功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

延伸 · 阅读

精彩推荐
  • JAVA教程SpringBoot JPA 表关联查询实例

    SpringBoot JPA 表关联查询实例

    本篇文章主要介绍了SpringBoot JPA 表关联查询实例,使用JPA原生的findBy语句实现,具有一定的参考价值,有兴趣的可以了解一下。...

    漫步于成神之路男人3652020-09-08
  • JAVA教程Java 是如何读取和写入浏览器Cookies的实例详解

    Java 是如何读取和写入浏览器Cookies的实例详解

    这篇文章主要介绍了Java 是如何读取和写入浏览器Cookies的实例的相关资料,需要的朋友可以参考下...

    lqh1392020-06-17
  • JAVA教程java数据结构与算法之快速排序详解

    java数据结构与算法之快速排序详解

    这篇文章主要介绍了java数据结构与算法之快速排序,结合实例形式详细分析了快速排序的原理、实现步骤、相关操作技巧与注意事项,需要的朋友可以参考下...

    android小猪2302020-09-23
  • JAVA教程HashSet工作原理_动力节点Java学院整理

    HashSet工作原理_动力节点Java学院整理

    HashSet 底层采用 HashMap 来保存所有元素,因此 HashSet 的实现比较简单。接下来通过本文给大家介绍HashSet工作原理_动力节点Java学院整理,需要的朋友可以参考...

    动力节点5192020-09-20
  • JAVA教程详解Spring MVC 集成EHCache缓存

    详解Spring MVC 集成EHCache缓存

    本篇文章主要介绍了详解Spring MVC 集成EHCache缓存,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    jiangadam3362020-10-20
  • JAVA教程java删除指定目录下所有空文件夹的方法

    java删除指定目录下所有空文件夹的方法

    这篇文章主要介绍了java删除指定目录下所有空文件夹的方法,涉及java针对文件与目录的遍历及目录删除相关操作技巧,需要的朋友可以参考下 ...

    々上善若水々2712020-06-06
  • JAVA教程JVM Tomcat性能实战(推荐)

    JVM Tomcat性能实战(推荐)

    下面小编就为大家带来一篇JVM Tomcat性能实战(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...

    jingxian5262020-05-01
  • JAVA教程Java8接口的默认方法

    Java8接口的默认方法

    这篇文章主要为大家介绍了Java8接口的默认方法,还为大家默认方法的多重继承,感兴趣的朋友可以参考一下 ...

    lijiao2752020-03-24