zoukankan      html  css  js  c++  java
  • ckeditor_3.6.6.2+CKFinder2.0.2配置

    一、首先工具的下载,找到相应的版本进行下载

        ckeditor_3.6.6.2+CKFinder2.0.2 http://ckeditor.com/download
        
    打开war文件,然后将相关的jar文件复制到WEB-INF/lib下面即可,把ckeditor和ckfinder文件夹拷贝到web工程下,我是放到webapp/js路径下。当然可以去掉ckeditor里一些无关的文件.
    说明:medsite为项目名称

    二、配置文件

    1、在web.xml中配置如下,增加ckeditor的启动

    1. <servlet>
    2. <servlet-name>ConnectorServlet</servlet-name>
    3. <servlet-class>com.ckfinder.connector.ConnectorServlet</servlet-class>
    4. <init-param>
    5. <param-name>XMLConfig</param-name>
    6. <param-value>/WEB-INF/ckfinder.xml</param-value>
    7. </init-param>
    8. <init-param>
    9. <param-name>debug</param-name>
    10. <param-value>false</param-value>
    11. </init-param>
    12. <load-on-startup>1</load-on-startup>
    13. </servlet>
    14. <servlet-mapping>
    15. <servlet-name>ConnectorServlet</servlet-name>
    16. <url-pattern>
    17. /js/ckfinder/core/connector/java/connector.java
    18. </url-pattern>
    19. </servlet-mapping>
    20. <filter>
    21. <filter-name>FileUploadFilter</filter-name>
    22. <filter-class>com.ckfinder.connector.FileUploadFilter</filter-class>
    23. <init-param>
    24. <param-name>sessionCookieName</param-name>
    25. <param-value>JSESSIONID</param-value>
    26. </init-param>
    27. <init-param>
    28. <param-name>sessionParameterName</param-name>
    29. <param-value>jsessionid</param-value>
    30. </init-param>
    31. </filter>
    32. <filter-mapping>
    33. <filter-name>FileUploadFilter</filter-name>
    34. <url-pattern>
    35. /js/ckfinder/core/connector/java/connector.java
    36. </url-pattern>
    37. </filter-mapping>

    2、在web.xml文件统计目录下新建ckfinder.xml,保存

    1. <config>
    2. <enabled>true</enabled>
    3. <baseDir></baseDir> //这里不要添加任何目录
    4. <baseURL>/medsite/upload/</baseURL> //这里指定上传的文                           件夹medsite为项目名称
    5. <licenseKey></licenseKey>
    6. <licenseName></licenseName>
    7. <imgWidth>1600</imgWidth>
    8. <imgHeight>1200</imgHeight>
    9. <imgQuality>80</imgQuality>
    10. <uriEncoding>UTF-8</uriEncoding>
    11. <forceASCII>false</forceASCII>
    12. <userRoleSessionVar>CKFinder_UserRole</userRoleSessionVar>
    13. <checkDoubleExtension>true</checkDoubleExtension>
    14. <checkSizeAfterScaling>true</checkSizeAfterScaling>
    15. <secureImageUploads>true</secureImageUploads>
    16. <htmlExtensions>html,htm,xml,js</htmlExtensions>
    17. <hideFolders>
    18. <folder>.svn</folder>
    19. <folder>CVS</folder>
    20. </hideFolders>
    21. <hideFiles>
    22. <file>.*</file>
    23. </hideFiles>
    24. <defaultResourceTypes></defaultResourceTypes>
    25. <types>
    26. <type name="Files">
    27. <url>%BASE_URL%files/</url>
    28. <directory>%BASE_DIR%files</directory>
    29. <maxSize>0</maxSize>
    30. <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
    31. </allowedExtensions>
    32. <deniedExtensions></deniedExtensions>
    33. </type>
    34. <type name="Images">
    35. <url>%BASE_URL%images/</url>
    36. <directory>%BASE_DIR%images</directory>
    37. <maxSize>0</maxSize>
    38. <allowedExtensions>bmp,gif,jpeg,jpg,png</allowedExtensions>
    39. <deniedExtensions></deniedExtensions>
    40. </type>
    41. <type name="Flash">
    42. <url>%BASE_URL%flash/</url>
    43. <directory>%BASE_DIR%flash</directory>
    44. <maxSize>0</maxSize>
    45. <allowedExtensions>swf,flv</allowedExtensions>
    46. <deniedExtensions></deniedExtensions>
    47. </type>
    48. </types>
    49. <accessControls>
    50. <accessControl>
    51. <role>*</role>
    52. <resourceType>*</resourceType>
    53. <folder>/</folder>
    54. <folderView>true</folderView>
    55. <folderCreate>true</folderCreate>
    56. <folderRename>true</folderRename>
    57. <folderDelete>true</folderDelete>
    58. <fileView>true</fileView>
    59. <fileUpload>true</fileUpload>
    60. <fileRename>true</fileRename>
    61. <fileDelete>true</fileDelete>
    62. </accessControl>
    63. </accessControls>
    64. <thumbs>
    65. <enabled>true</enabled>
    66. <url>%BASE_URL%_thumbs/</url>
    67. <directory>%BASE_DIR%_thumbs</directory>
    68. <directAccess>false</directAccess>
    69. <maxHeight>100</maxHeight>
    70. <maxWidth>100</maxWidth>
    71. <quality>80</quality>
    72. </thumbs>
    73. <plugins>
    74. <plugin>
    75. <name>imageresize</name>
    76. <class>com.ckfinder.connector.plugins.ImageResize</class>
    77. <params>
    78. <param name="smallThumb" value="90x90"></param>
    79. <param name="mediumThumb" value="120x120"></param>
    80. <param name="largeThumb" value="180x180"></param>
    81. </params>
    82. </plugin>
    83. <plugin>
    84. <name>fileeditor</name>
    85. <class>com.ckfinder.connector.plugins.FileEditor</class>
    86. <params></params>
    87. </plugin>
    88. </plugins>
    89. <basePathBuilderImpl>com.ckfinder.connector.configuration.ConfigurationPathBuilder</basePathBuilderImpl>
    90. </config>

    3、配置ckeditor,可供ckfinder上传图片和文件

    1. /*
    2. Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
    3. For licensing, see LICENSE.html or http://ckeditor.com/license
    4. */
    5. CKEDITOR.editorConfig = function( config )
    6. {
    7. //配置CKFinder
    8. config.filebrowserBrowseUrl ='js/ckfinder/ckfinder.html';
    9. config.filebrowserImageBrowseUrl ='js/ckfinder/ckfinder.html?Type=Images';
    10. config.filebrowserFlashBrowseUrl = 'js/ckfinder/ckfinder.html?Type=Flash';
    11. config.filebrowserUploadUrl = 'js/ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Files';
    12. config.filebrowserImageUploadUrl = 'js/ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Images';
    13. config.filebrowserFlashUploadUrl = 'js/ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Flash';
    14. config.filebrowserWindowHeight='50%';//CKFinder浏览窗口高度,默认值70%
    15. config.filebrowserWindowWidth='70%';//CKFinder浏览窗口宽度,默认值80%
    16. };

    4、拷贝此目录下的文件,复制到src下

     
    如下所示
     

    5、lib包给大家展示一下

     

    6、效果展示

     
     
    此时即可上传文件和图片了

    7、修改上传文件的文件名称

     
    修改此类下的validateUploadItem方法
    1. private boolean validateUploadItem(final FileItem item, final String path) {
    2. if (item.getName() != null && item.getName().length() > 0) {
    3. this.fileName = getFileItemName(item);
    4. } else {
    5. this.errorCode = Constants.Errors.CKFINDER_CONNECTOR_ERROR_UPLOADED_INVALID;
    6. return false;
    7. }
    8. //this.newFileName = this.fileName;
    9. String sExtentsion = FileUtils.getFileExtension(this.fileName);
    10. SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
    11. this.newFileName = format.format(new Date()) + "." + sExtentsion;
    12. String unsafeFileName = this.newFileName;
    13. for (char c : UNSAFE_FILE_NAME_CHARS) {
    14. this.newFileName = unsafeFileName.replace(c, '_');
    15. }
    16. if (configuration.forceASCII()) {
    17. this.newFileName = FileUtils.convertToASCII(this.newFileName);
    18. }
    19. if (!unsafeFileName.equals(this.newFileName)) {
    20. this.errorCode =
    21. Constants.Errors.CKFINDER_CONNECTOR_ERROR_UPLOADED_INVALID_NAME_RENAMED;
    22. }
    23. if (FileUtils.checkIfDirIsHidden(this.currentFolder, configuration)) {
    24. this.errorCode = Constants.Errors.CKFINDER_CONNECTOR_ERROR_INVALID_REQUEST;
    25. return false;
    26. }
    27. if (!FileUtils.checkFileName(this.newFileName)
    28. || FileUtils.checkIfFileIsHidden(this.newFileName,
    29. configuration)) {
    30. this.errorCode = Constants.Errors.CKFINDER_CONNECTOR_ERROR_INVALID_NAME;
    31. return false;
    32. }
    33. int checkFileExt = FileUtils.checkFileExtension(this.newFileName,
    34. configuration
    35. .getTypes().get(type),
    36. configuration,
    37. true);
    38. if (checkFileExt == 1) {
    39. this.errorCode = Constants.Errors.CKFINDER_CONNECTOR_ERROR_INVALID_EXTENSION;
    40. return false;
    41. } else if (checkFileExt == 2) {
    42. this.newFileName = FileUtils.renameFileWithBadExt(this.newFileName);
    43. }
    44. try {
    45. File file = new File(path, getFinalFileName(path,
    46. this.newFileName));
    47. if (!FileUtils.checkFileSize(configuration.getTypes().get(this.type),
    48. item.getSize())
    49. && !(configuration.checkSizeAfterScaling() && ImageUtils
    50. .isImage(file))) {
    51. this.errorCode =
    52. Constants.Errors.CKFINDER_CONNECTOR_ERROR_UPLOADED_TOO_BIG;
    53. return false;
    54. }
    55. if (configuration.getSecureImageUploads() && ImageUtils.isImage(file)
    56. && !ImageUtils.checkImageFile(item)) {
    57. this.errorCode =
    58. Constants.Errors.CKFINDER_CONNECTOR_ERROR_UPLOADED_CORRUPT;
    59. return false;
    60. }
    61. if (!FileUtils.checkIfFileIsHtmlFile(file.getName(), configuration)
    62. && FileUtils.detectHtml(item)) {
    63. this.errorCode =
    64. Constants.Errors.CKFINDER_CONNECTOR_ERROR_UPLOADED_WRONG_HTML_FILE;
    65. return false;
    66. }
    67. } catch (SecurityException e) {
    68. if (configuration.isDebugMode()) {
    69. this.exception = e;
    70. }
    71. this.errorCode = Constants.Errors.CKFINDER_CONNECTOR_ERROR_ACCESS_DENIED;
    72. return false;
    73. } catch (IOException e) {
    74. if (configuration.isDebugMode()) {
    75. this.exception = e;
    76. }
    77. this.errorCode = Constants.Errors.CKFINDER_CONNECTOR_ERROR_ACCESS_DENIED;
    78. return false;
    79. }
    80. return true;
    81. }
    此时文件的名称就像上图展示的,以时间命名了







  • 相关阅读:
    Vue项目里添加特殊字体或 某些字体乱码的问题
    Vue 事件修饰符
    js 判断是什么浏览器、是否为谷歌浏览器
    Vue 打印预览功能
    Vue v-if与v-show的区别
    js 下载文件/导出
    使用Mysql Workbench 导入数据库提示 ERROR 1227 (42000) at line 18: Access denied; you need (at least one of) the SUPER privilege(s) for
    java 使用注释校验数据有效性
    java poi分批次导入Excel
    浅谈java中源码常见的几个关键字(native,strictfp,transient,volatile)
  • 原文地址:https://www.cnblogs.com/wang3680/p/6f567cba1a44ce772152281dd29a6d65.html
Copyright © 2011-2022 走看看