ckeditor与ckfinder整合forJAVA(解决乱码问题)
ckEditor支持上传(ckEditor+ckFinder)

ckEditor+ckFinder整合实现上传功能1.去/download/download下载ckEditor和ckFinder,因为公司项目基本是java项目所以下载java版本例如:ckeditor-java-3.6.2.zip,ckfinder_java_2.3.zip2.加压下载后的压缩包:Ckeditor压缩包中的ckeditor文件夹拷入项目根目录中,Ckfinder压缩包中\ckfinder_java_2.3\ckfinder\_sources\CKFinder for Java\WebApp\src\main\webapp的ckfinder文件夹拷入项目根目录中。
3.项目中引用所需JAR包:Ckeditor压缩包中\WEB-INF\lib文件夹下的ckeditor-java-core-3.5.3.jar Ckfinder压缩包解压后有一个CKFinderJava.war文件,接着解压CKFinderJava.war,找到\WEB-INF\lib文件夹下的CKFinder-2.3.jar,CKFinderPlugin-FileEditor-2.3.jar,CKFinderPlugin-ImageResize-2.3.jar,commons-fileupload-1.2.2.jar,commons-io-2.0.1.jar,thumbnailator-0.4.2.jar 将这7个包拷入项目的\WEB-INF\lib文件夹下。
4.页面引用js:<script type="text/javascript" src="/ckeditor/ckeditor.js"></script><script type="text/javascript" src="/ckfinder/ckfinder.js"></script>5.绑定页面中的textarea:$(function(){var editor = CKEDITOR.replace('mailContents');CKFinder.setupCKEditor(editor,'/ckfinder/');});函数中的mailContents为textarea的name属性值/ckfinder/为ckfinder的项目路径6.配置文件:在第三步解压的CKFinderJava文件夹的WEB-INF找到config.xml修改第二行的<enabled>false</enabled>为<enabled>true</enabled>设置启用上传功能,修改第四行的<baseURL>/CKFinderJava/userfiles/</baseURL>把红色部分改为项目保存上传文件的文件夹,保存后放入项目的WEB-INF文件夹下。
FCKEditor几种乱码解决

newFolderStr=new String(newFolderStr.getBytes("iso8859-1"),"utf-8");
网上很多文章都说修改/editor/filemanager/browser/default/frmupload.html,在head中加一个meta
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ,其实凭这个不行。
注:对于问题3,这种解决办法不可取,最好不要去修改服务器的编码,否则会影响到服务器上其它的工程。解决这个编码的问题可以修改源代码或者从新编写一个类来处理。通过观察打开的上传浏览对话框可以找对对应的htm页面和负责处理上传文件名称的com.fredck.FCKeditor.uploader. ConnectorServlet这个类,然后找到对应的参数,转换编码便可。如:String newFolderStr=request.getParameter("NewFolderName");
解决办法:
找到FCKeditor.java解压包中的src目录下SimpleUploaderServlet.java做如下修改:
找到该程序中DiskFileUpload upload = new DiskFileUpload(),然后在该行下面添加
upload.setHeaderEncoding("UTF-8"),重新编译成class文件并利用WinRAR把该class文件
<Connector port="8009"
在web工程中整合ckeditor3.6和ckfinder2.0.2

文章分类:Java编程首先在/download 下载当前最新的ckeditor,版本为3.6。
同时下载CKEditor for Java 3.5.3。
在/download 下载当前最新的java版本的ckfinder2.0.2 。
解压后,将ckeditor文件夹放到工程的WebRoot目录下再将ckfinder文件夹也放到工程的WebRoot目录下(及和ckeditor在同一级)要注意:ckfinder解压后,其中包括了war,源码等等。
上面指的ckfinder文件夹不是ckfinder_java_2.0.2目录下的ckfinder,而是ckfinder_java_2.0.2\ckfinder\_sources\CKFinder forJava\WebApp\src\main\webapp\ 目录下的ckfinder文件夹,该文件夹下有ckfinder.js文件。
同时将ckfinder_java_2.0.2\ckfinder\_sources\CKFinder forJava\WebApp\src\main\webapp\WEB-INF 目录下的config.xml文件拷贝到当前工程的WEB-INF 目录下。
(注意要修改config.xml配置文件的 baseURL )config.xml内容如下:Java代码1./*将baseURL中的fckeditor改为自己工程名2. <maxSize>0</maxSize>表示上传无限制,3.如果不是0的话,其参数结尾必须加k或m或g ,否则上传限制大小就为0,这样就无论你上传什么文件都提示文件过大了。
4.*/5.<config>6. <enabled>true</enabled>7. <baseDir></baseDir>8. <baseURL>/fckeditor/userfiles/</baseURL>9. <licenseKey></licenseKey>10. <licenseName></licenseName>11. <imgWidth>1600</imgWidth>12. <imgHeight>1200</imgHeight>13. <imgQuality>80</imgQuality>14. <uriEncoding>UTF-8</uriEncoding>15. <forceASCII>false</forceASCII>16. <userRoleSessionVar>CKFinder_UserRole</userRoleSessionVar>17. <checkDoubleExtension>true</checkDoubleExtension>18. <checkSizeAfterScaling>true</checkSizeAfterScaling>19. <secureImageUploads>true</secureImageUploads>20. <htmlExtensions>html,htm,xml,js</htmlExtensions>21. <hideFolders>22. <folder>.svn</folder>23. <folder>CVS</folder>24. </hideFolders>25. <hideFiles>26. <file>.*</file>27. </hideFiles>28. <defaultResourceTypes></defaultResourceTypes>29. <types>30. <type name="Files">31. <url>%BASE_URL%files/</url>32. <directory>%BASE_DIR%files</directory>33. <maxSize>0</maxSize>34. <allowedExtensions>7z,aiff,asf,avi,bmp,csv,doc,docx,fla,flv,gif,gz,gzip,jpeg,jpg,mid,mov,mp3,mp4,mpc,mpeg,mpg,ods, odt,pdf,png,ppt,pptx,pxd,qt,ram,rar,rm,rmi,rmvb,rtf,sdc,sitd,sw f,sxc,sxw,tar,tgz,tif,tiff,txt,vsd,wav,wma,wmv,xls,xlsx,zip35. </allowedExtensions>36. <deniedExtensions></deniedExtensions>37. </type>38. <type name="Images">39. <url>%BASE_URL%images/</url>40. <directory>%BASE_DIR%images</directory>41. <maxSize>0</maxSize> <allowedExtensions>bmp,gif,jpeg,jpg,png</allowedExtensions>42. <deniedExtensions></deniedExtensions>43.44. </type>45. <type name="Flash">46. <url>%BASE_URL%flash/</url>47. <directory>%BASE_DIR%flash</directory>48. <maxSize>0</maxSize>49. <allowedExtensions>swf,flv</allowedExtensions>50. <deniedExtensions></deniedExtensions>51. </type>52. </types>53. <accessControls>54. <accessControl>55. <role>*</role>56. <resourceType>*</resourceType>57. <folder>/</folder>58. <folderView>true</folderView>59. <folderCreate>true</folderCreate>60. <folderRename>true</folderRename>61. <folderDelete>true</folderDelete>62. <fileView>true</fileView>63. <fileUpload>true</fileUpload>64. <fileRename>true</fileRename>65. <fileDelete>true</fileDelete>66. </accessControl>67. </accessControls>68. <thumbs>69. <enabled>true</enabled>70. <url>%BASE_URL%_thumbs/</url>71. <directory>%BASE_DIR%_thumbs</directory>72. <directAccess>false</directAccess>73. <maxHeight>100</maxHeight>74. <maxWidth>100</maxWidth>75. <quality>80</quality>76. </thumbs>77. <plugins>78. <plugin>79. <name>imageresize</name>80. <class>com.ckfinder.connector.plugins.ImageResize</class>81. <params>82. <param name="smallThumb" value="90x90"></param>83. <param name="mediumThumb" value="120x120"></param>84. <param name="largeThumb" value="180x180"></param>85. </params>86. </plugin>87. <plugin>88. <name>fileeditor</name>89. <class>com.ckfinder.connector.plugins.FileEditor</class>90. <params></params>91. </plugin>92. </plugins>93. <basePathBuilderImpl>com.ckfinder.connector.configuration.ConfigurationPathBuilder</basePathBuilderImpl>94.</config>在web.xml文件中添加如下:Java代码1.<servlet>2. <servlet-name>ConnectorServlet</servlet-name>3. <servlet-class>4. com.ckfinder.connector.ConnectorServlet5. </servlet-class>6. <init-param>7. <param-name>XMLConfig</param-name>8. <param-value>/WEB-INF/config.xml</param-value>9. </init-param>10. <init-param>11. <param-name>debug</param-name>12. <param-value>false</param-value>13. </init-param>14. <load-on-startup>1</load-on-startup>15.</servlet>16.<servlet-mapping>17. <servlet-name>ConnectorServlet</servlet-name>18. <url-pattern>19. /ckfinder/core/connector/java/connector.java20. </url-pattern>21.</servlet-mapping>22.<session-config>23. <session-timeout>10</session-timeout>24.</session-config>然后要添加需要的jar包:(这些jar包在以上下载的文件都包含了)ckeditor需要的有:ckeditor-java-core-3.5.3.jarckfinder有:CKFinder-2.0.2.jarCKFinderPlugin-FileEditor-2.0.2.jarCKFinderPlugin-ImageResize-2.0.2.jarThumbnailator-0.3.3.jarcommons-fileupload-1.2.2.jarcommons-io-2.0.1.jar(添加jar包就是将jar拷贝到工程的WEB-INF目录下的lib目录)新建一个jsp文件,如editor.jspJava代码1.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd">2.<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>3.<%@ taglib uri="" prefix="ckeditor"%>4.<%@ taglib uri="" prefix="ckfinder"%>5.<%@page import="com.ckeditor.CKEditorConfig"%>6.<%7. String path = request.getContextPath();8. String basePath = request.getScheme() + "://"9. + request.getServerName() + ":" + request.getServerPort()10. + path + "/";11.%>12.<html>13. <head>14. <base href="<%=basePath%>"/>15. <title>在线编辑器</title>16. <meta http-equiv="pragma" content="no-cache" />17. <meta http-equiv="cache-control" content="no-cache"/>18. <meta http-equiv="expires" content="0"/>19. <meta http-equiv="keywords" content="editor,keyword2,keyword3"/>20. <meta http-equiv="description" content="editor"/>21. <!--22. <link rel="stylesheet" type="text/css" href="styles.css"/>23. -->24.25. </head>26.27. <body>28. <ckfinder:setupCKEditor editor="editor1" basePath="ckfinder/" />29. <ckeditor:editor basePath="ckeditor/"30. editor="editor1" value=" " />31. </body>32.</html>好了,访问试试看吧,还具有了上传、下载文件功能。
最新ckeditor_ckfinder整合超完整版

Ckeditor ckfinder2.0.1超强整合完整版实践版 PHP目录php开发--使用CKEditor 和CKFinder 实现上传功能 (1)1. 下载安装CKEditor: (1)2. 下载安装CKFinder: (2)3. 在网页中使用CKEditor 和CKFinder: (2)4. 配置CKFinder进行上传图片,Flash等。
(3)5.Ckfinder实现普通文件上传 (5)ckfinder中实现文件上传后按当前时间改名 (6)CKEditor 优化配置 (6)精简Ckeditor (6)提速:禁用拼写检查 (6)CKFinder 单独使用 (9)ckfinder去掉注册的提示信息 (10)php开发--使用CKEditor 和CKFinder 实现上传功能1. 下载安装CKEditor:/解压下载到的CKEditor放到网站的路径中即可简单配置ckeditor,打开config.js,添加如下内容2. 下载安装CKFinder:/download解压下载到的CKEditor放到与CKEditor同一目录中即可3. 在网页中使用CKEditor 和CKFinder:CKEditor 实际是替换一个textarea 标签,所以把textarea放到一个form中,当提交到php 服务器端,使用$_GET['xxx'] 或者$_POST['xxx'] 取得编辑好的数据。
注意,因为CKEditor 要替换textarea,所以相应的javascript 代码"CKEDITOR.replace(xxxxxx)" 要放在textarea 的后面。
最简单的方法,直接使用下面的例子修改一下即可。
可以在网页中看到CKEditor 了,兴奋吧。
注意:路径一定要正确,否者无法显示。
4. 配置CKFinder进行上传图片,Flash等。
到这里,点击 "Image" 按钮,在弹出的窗口中的 "Upload" 标签中已经看到上传按钮了,但是在上传文件时失败。
java与ckeditor和ckfinder整合后实现上传图片功能

<maxSize>0</maxSize>
<allowedExtensions>7z,aiff,asf,avi,bmp,csv,doc,docx,fla,flv,gif,gz,gzip,jpeg,jpg,mid,mov,mp3,mp4,mpc,mpeg,mpg,ods,odt,pdf,png,ppt,pptx,pxd,qt,ram,rar,rm,rmi,rmvb,rtf,sdc,sitd,swf,sxc,sxw,tar,tgz,tif,tiff,txt,vsd,wav,wma,wmv,xls,xlsx,zip
</type>
</types>
<!-- 可允许的操作 -->
<accessControls>
<accessControl>
<role>*</role>
<resourceType>*</resourceType>
<folder>/</folder>
<params>
<param name="smallThumb" value="90x90"></param>
<param name="mediumThumb" value="120x120"></param>
<param name="largeThumb" value="180x180"></param>
ckeditor协同kcfinder实现图片的远程管理和图文并茂的内容发布

Ckeditor kcfinder 整合配置:Ckeditor ---- 强大的富文本编辑器官方推出了ckfinder 在线文件管理模块配合,但是该模块并不是和ckeditor一样开源免费使用;不过还好有另外一款文件管理器可与其配合使用,实现你想要的功能,即:kcfinder。
这是其他组织开发的远程文件管理模块,可以用它来协同ckeditor 做文件上传、实现图文并茂的文章发布和远程管理文件资源的操作。
网上下载ckeditor 和kcfinder 的php版本,将两者放到你规划好的同一目录下,配置ckeditor :修改config.js,添加如下配置项:_++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //kcfinder 文件在线浏览的urlconfig.filebrowserBrowseUrl = '/admin/kcfinder/browse.php?type=files';//kcfinder 在线浏览图片资源的urlconfig.filebrowserImageBrowseUrl = '/admin/kcfinder/browse.php?type=images';//kcfinder 在线浏览flash文件的urlconfig.filebrowserFlashBrowseUrl = '/admin/kcfinder/browse.php?type=flash';//ckeittor 文件上传提交的urlconfig.filebrowserUploadUrl = '/admin/kcfinder/upload.php?type=files';//ckeittor 上传图片的urlconfig.filebrowserImageUploadUrl = '/admin/kcfinder/upload.php?type=images';//ckeittor 上传flash的urlconfig.filebrowserFlashUploadUrl = '/admin/kcfinder/upload.php?type=flash';cfinder/config.php里,把uploadURL配置成你自己的上传总目录的URL,比如:/uploads.把uploadDir配置成你自己的上传相对目录(相对于kcfinder/config.php的目录),比如:../../../../uploads/.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++经过以上配置,可以在ckeditor 的工具栏里边的图像工具和flash工具里边看到多了客户端本地文件上传到服务器的菜单项,但是此时上传会出问题,还需配置kcfinder 正确响应ckeditor的操作请求,以及配置正确的上传文件保存路径:修改kcfinder 的配置文件config.php 里边有两个地方需要更改:一是添加权限限制,不能谁谁都可以向你服务器上传东西:比如我的一个小应用-----文章发布系统的后台,我在config.php文件的最顶部加入:+++++++++++++++++++++++++++++++++++++++++++++++++++++++session_start();if(!empty($_SESSION['USERNAME'])&&!empty($_SESSION['PASSWORD'])){ $_SESSION['KCFINDER']['disabled'] = false;}else{echo "<script>top.location.href='../login.php';</script>";}++++++++++++++++++++++++++++++++++++++++++++++++++++++++以上代码主要是判断用户是否登录,登录的话让kcfinder 的$_SESSION['KCFINDER']['disabled'] = false;//就是启用kcfinder反之就跳转到登录页面登录;配置如下:(配置数组方式)//不允许上的传文件类型限制'deniedExts' => "exe com msi bat php phps phtml php3 php4 cgi pl",'maxImageWidth' => 0, //图片最大宽度'maxImageHeight' => 0,//图片最大高度'thumbWidth' => 100,//缩略图的最大宽'thumbHeight' => 100, //缩略图的最大高'jpegQuality' => 90, //图片质量//上传文件保存路径配置:'uploadURL' => "../upload/",以上是一些基本配置,之后kcfinder 就可以一ckeditor模块的方式协同ckeditor 来做文件上传、实现图文并茂的文章发布和远程管理文件资源的操作。
java中文乱码常见解决方式

java中⽂乱码常见解决⽅式说明项⽬出现中⽂乱码现象、常见编码解决⽅法如下。
项⽬乱码项⽬⼯作空间在 Windows -> Prefenrences -> General -> Workspace 中进⾏设置在创建项⽬⼯作空间的时候、优先设置编码,在该⼯作空间下创建的项⽬默认遵循⼯作框架配置项⽬编码在 Project -> Resource中设置创建项⽬的时候、设置编码,则项⽬下⽂件都将会和项⽬统⼀页⾯⽂件编码⽂件右键 Properties -> Resource⽂件头编码⽂件头⼀般是HTML、JSP标签头部添加编码JSP:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>HTML:添加在<head>标签⾥⾯<meta http-equiv="Content-Type" content="text/html; charset=utf-8">编辑器编码设置NotePad++编辑器打开⼀个⽂件时候乱码在 菜单 -> 格式记事本存储时,保存为UTF-8格式服务器乱码SpringMVC在web.xml添加<filter><description>字符集过滤器</description><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><description>字符集编码</description><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>Tomcat编码Tomcat 的 conf/server.conf设置编码、设置为:<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"URIEncoding="UTF-8"redirectPort="8443" />添加:URIEncoding="UTF-8" 属性请求响应编码设置请求、响应编码//设置获取请求的编码request.setCharacterEncoding("utf-8")//设置服务器端的编码response.setCharacterEncoding("utf-8");//通知浏览器服务器发送的数据格式response.setContentType("text/html;charset=utf-8");字符串编码String oldStr = "编码设置";String newStr = new String(oldStr.getBytes(), "UTF-8");System.out.println("UTF-8编码:" + newStr);JDBC 连接指定编码url=jdbc:mysql://127.0.0.1/database?characterEncoding=UTF-8数据库设置编码编码可选:mysql> set character_set_client=utf8;mysql> set character_set_connection=utf8;mysql> set character_set_database=utf8;mysql> set character_set_results=utf8;mysql> set character_set_server=utf8;mysql> set character_set_system=utf8;mysql> set collation_connection=utf8;mysql> set collation_database=utf8;mysql> set collation_server=utf8;数据库表设置编码创建表的时候、指定编码:DEFAULT CHARSET=UTF8;CREATE TABLE `type` (`id` int(10) unsigned NOT NULL auto_increment,`type_name` varchar(50) character set utf8 NOT NULL default '', PRIMARY KEY (`id`)) DEFAULT CHARSET=UTF8;补充如果出现乱码现象、可对应⽂章修改。
JAVA中文字符乱码解决详解

JAVA中⽂字符乱码解决详解⾸先要了解JAVA处理字符的原理。
JAVA使⽤UNICODE来存储字符数据,处理字符时通常有三个步骤:– 按指定的字符编码形式,从源输⼊流中读取字符数据– 以UNICODE编码形式将字符数据存储在内存中– 按指定的字符编码形式,将字符数据编码并写⼊⽬的输出流中。
所以JAVA处理字符时总是经过了两次编码转换,⼀次是从指定编码转换为UNICODE编码,⼀次是从UNICODE编码转换为指定编码。
如果在读⼊时⽤错误的形式解码字符,则内存存储的是错误的UNICODE字符。
⽽从最初⽂件中读出的字符数据,到最终在屏幕终端显⽰这些字符,期间经过了应⽤程序的多次转换。
如果中间某次字符处理,⽤错误的编码⽅式解码了从输⼊流读取的字符数据,或⽤错误的编码⽅式将字符写⼊输出流,则下⼀个字符数据的接收者就会编解码出错,从⽽导致最终显⽰乱码。
这⼀点,是我们分析字符编码问题以及解决问题的指导思想。
好,现在我们开始⼀只只的解决这些乱码怪兽。
⼀、在JAVA⽂件中硬编码中⽂字符,在eclipse中运⾏,控制台输出了乱码。
例如,我们在JAVA⽂件中写⼊以下代码:String text = “⼤家好”;System.out.println(text);如果我们是在eclipse⾥编译运⾏,可能看到的结果是类似这样的乱码:。
那么,这是为什么呢?我们先来看看整个字符的转换过程。
1. 在eclipse窗⼝中输⼊中⽂字符,并保存成UTF-8的JAVA⽂件。
这⾥发⽣了多次字符编码转换。
不过因为我们相信eclipse的正确性,所以我们不⽤分析其中的过程,只需要相信保存下的JAVA⽂件确实是UTF-8格式。
2. 在eclipse中编译运⾏此JAVA⽂件。
这⾥有必要详细分析⼀下编译和运⾏时的字符编码转换。
– 编译:我们⽤javac编译JAVA⽂件时,javac不会智能到猜出你所要编译的⽂件是什么编码类型的,所以它需要指定读取⽂件所⽤的编码类型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ckeditor + ckfinder整合for JA V A
---支持文件上传、解决乱码问题
2012-07-18
备注:本人使用的开发工具为eclipse 3.7.0,服务器为:apache-tomcat-7.0.20,jdk版本为:jdk1.6.0_29。
本人已使用了字符过滤器,所有的字符都设置为UTF-8。
仅供参考。
一.简谈:
前期(2012-06-20)本人根据网上一些资料,以及个人的实现,发布了“ckeditor + ckfinder整合for JA V A(支持文件上传)”文档,收到了很多网友的私信,并进行了交流。
在此感谢那些交流过的网友。
网上大多数的资料都是相对比较老的版本,所以本人花了一些时间写下了ckeditor 和ckfinder整合。
但由于本人只是简单的应用,所以没有整合的很充分,部分功能没有全部去实现,如文件夹重命名、文件夹新建、上传文件时文件带有汉字等乱码问题没有解决,先作补充如下(请先阅读前期材料)。
二.“错误”的出现
当前期准备完成后,我们开始操作图片、文档、flash的上传了,但是这时你会发现,当上传文件名为汉字,后者新建文件夹,或者重命名文件夹的时候,如果使用中文会出现乱码,导致文件、文件夹无法访问。
操作如下:
打开上传页面,选择Files--创建子文件夹,如下图所示:
输入“我们”,如下图所示:
选择“确定”,出现如下情况:
同理,当文件夹重命名带汉字,上传图片时文件名带汉字也会出现类似的情况。
三.问题的解决
先解决方法如下:
找到程序运行的服务器(tomcat),下的server.xml文件
用记事本打开找到如下段落,如下图所示:
修改为如下图所示区域:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />
注意大小写问题。
说明:如不指定UTF-8方式编码,TOMCAT将使用IOS-8895-1编码。
很多人修改完成后,重启tomcat服务器,重新运行程序,还是会出现乱码问题。
这时我们需要重新加载一下tomcat。
删除原来配置的tomcat服务器,如下图所示:
接着,点“new server wizad”,如下:
下一步,完成。
再次重新启动tomcat服务器,打开程序,发现乱码已全部解决。
如下图:
前期资料访问地址如下:
百度文库:/view/fbef31d0195f312b3169a5ff.html
网易博客:/blog/static/4179948420125204577258/ CSDN(含源码):/detail/pac123321/4384278
51CTO(含源码):/data/434462。