日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

        
            
        歡迎訪問 生活随笔!

        生活随笔

        當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

        编程问答

        ckfinder的使用及了解config.xml的配置

        發布時間:2023/12/20 编程问答 42 豆豆
        生活随笔 收集整理的這篇文章主要介紹了 ckfinder的使用及了解config.xml的配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
        ckfinder的使用,根據官網向導(CKFinder_2.x/Developers_Guide)自己寫的筆記
        1、將ckfinder_java_2.4.3\CKFinder-Java-2.4.3\ckfinder目錄放到根目錄下面,WEB-INF/lib中的jar文件全部放到項目中的lib下面
        2、將config.xml放到WEB-INF目錄下面
        3、修改config.xml文件下的配置?
        ??? <enabled>true</enabled> ?? ?<!--修改為true,表示開啟ckfinder功能。默認是false--!> ??? ?
        4、? 支持以下服務
        ??? Tomcat 5.5-7,Jetty 7-9,JBoss 6-7,GlassFish 3.0-4.0,Weblogic 11g-12c.?
        ----------------- 了解config.xml配置 ----------------------

        5、1)如果是購買ckfinder,需要更改config.xml

        ??? <licenseKey>put your license name here</licenseKey>
        ??? <licenseName>put your license key here</licenseName>

        ? 2)配置ckfinder處理的資源路徑,上傳文件存放的路徑。例如:

        ??? <baseURL>/CKFinderJava/userfiles/</baseURL>
        ??? <baseURL>http://example.com/CKFinderJava/userfiles/</baseURL>

        ? 3)服務直接路徑,圖片上傳后的位置,是物理地址的全路徑而不是相對路徑,最后加“/”

        ??? <baseDir>/usr/tomcat-6.0.32/webapps/CKFinderJava/userfiles/</baseDir>
        ??? <baseDir>C:\tomcat-6.0.32\webapps\CKFinderJava\userfiles\</baseDir>

        ?? 注意:如果baseDir設置不寫,參考baseURL的路徑。但是baseURL是網頁地址時,不會覆蓋

        6、Access Control 訪問權限,使ckfinder更安全
        ? 1)在config.xml文件中添加以下語句:
        ?? <accessControls>
        ?? ?<accessControl>
        ?? ??? ?<role>*</role>?? //設置用戶類型
        ?? ??? ?<resourceType>*</resourceType>? //不同資源如images,flash,files
        ?? ??? ?<folder>/</folder>?? //默認“/”是沒有文件夾設置
        ?? ??? ?<folderView>true</folderView>?? //以下設置true代表有效,false代表無效
        ?? ??? ?<folderCreate>true</folderCreate>
        ?? ??? ?<folderRename>true</folderRename>
        ?? ??? ?<folderDelete>true</folderDelete>
        ?? ??? ?<fileView>true</fileView>
        ?? ??? ?<fileUpload>true</fileUpload>
        ?? ??? ?<fileRename>true</fileRename>
        ?? ??? ?<fileDelete>true</fileDelete>
        ?? ?</accessControl>
        ?? </accessControls>
        ? 2)在config.xml文件中配置用戶角色session變量
        ?? <userRoleSessionVar>CKFinder_UserRole</userRoleSessionVar>
        ? 3)在java代碼中合適的位置,比如login()方法里,添加以下代碼。
        ???? 設置一個用戶角色名,如“admin”
        ?? HttpSession session = request.getSession(true);
        ?? session.setAttribute("CKFinder_UserRole", "admin");
        ? 4)注意:系統會在訪問yoursite/ckfinder2.3.1/ckfinder.html時(包括點擊下圖的“瀏覽服務器”按鈕),
        ??? 檢查CKFinder_UserRole的值是什么,它具有的權限是什么。如果一個人沒有登錄系統,而是直接訪問
        ??? yoursite/ckfinder2.3.1/ckfinder.html,那么系統就會檢查到CKFinder_UserRole是null,
        ??? 他就看不到服務器上的文件。
        7、ckfinder允許創建縮略圖,使用設置的大小瀏覽圖片
        ? 1)設置縮略圖參數
        ??? <thumbs>
        ?? ?<enabled>true</enabled>
        ?? ?<url>%BASE_URL%_thumbs/</url>
        ?? ?<directory>%BASE_DIR%_thumbs</directory>
        ?? ?<directAccess>false</directAccess> //設置為true,直接從_thumbs文件夾中加載縮略圖,其他目錄下時不能使用
        ?? ?<maxHeight>100</maxHeight>
        ?? ?<maxWidth>100</maxWidth>
        ?? ?<quality>80</quality>??? //設置范圍[0-100],可接受值是45左右,一般設置為80
        ??? </thumbs>
        ? 2)你也可以指定圖片的上傳大小,如果圖片比設置范圍大時,將會按指定的大小加載。
        ??? <imgWidth>1600</imgWidth>
        ??? <imgHeight>1200</imgHeight>
        ??? <imgQuality>80</imgQuality> //范圍是0-100
        8、資源類型是不同路徑下,組織文件的方法,每一種路徑有著不同的配置,下面是兩種資源類型:
        ? 1) 內置的類型有三種files, images, and Flash objects.?
        ???? 在config.xml文件中已經進行了配置<type>...</type>,自己查看一下。
        ???? <types>
        ?? ?<type name="Flash">
        ?? ??? ?<url>%BASE_URL%flash/</url>?? //url和directory的定義規則與baseURL和baseDir相同
        ?? ??? ?<directory>%BASE_DIR%flash</directory>
        ?? ??? ?<maxSize>0</maxSize>????????? //定義上傳圖片的字節大小,可以使用G,M,K單位
        ?? ??? ?<allowedExtensions>swf,flv</allowedExtensions>? //允許上傳的格式
        ?? ??? ?<deniedExtensions></deniedExtensions>?? //不允許長傳的格式
        ?? ?</type>
        ?? ?<type name="Files">...</type>
        ?? ?<type name="Images">...</type>
        ????? </types>
        ? 2)如果添加新的資源類型,也可以再config.xml中進行配置,例如:
        ???? <types>
        ?? ?<type name="MSdocs">
        ?? ??? ?<url>%BASE_URL%MSdocs/</url>
        ?? ??? ?<directory>%BASE_DIR%MSdocs</directory>
        ?? ??? ?<maxSize>2M</maxSize>
        ?? ??? ?<allowedExtensions>doc,ppt,xls</allowedExtensions>
        ?? ??? ?<deniedExtensions></deniedExtensions>
        ?? ?</type>
        ???? </types>
        9、安全問題
        ?? 1)多個后綴文件讀取時,不只是檢查最后一個后綴名,如果設置.php文件不允許上傳,而.rar文件允許上傳,
        ?? ?則foo.php.rar文件將不會被上傳,將會被重命名為foo_php.rar
        ???? <checkDoubleExtension>true</checkDoubleExtension>
        ?? 2)檢查是不是圖片文件,不僅僅是后綴名正確,后綴名為jpeg的文本文件不能成功上傳到圖片。
        ???? <secureImageUploads>true</secureImageUploads>?
        ?? 3)允許上傳的文件中包含html代碼的文件類型

        ???? <htmlExtensions>html, htm, xml, js, xsl</htmlExtensions>

        ? 4)如果設置為true,在創建文件夾或者上傳文件時,名字里不能包含不安全的字符????? <disallowUnsafeCharacters>false</disallowUnsafeCharacters> ?? ??

        10、//配置編碼類型
        ??? <uriEncoding>ISO-8859-1</uriEncoding>?? ?
        ??? //對用戶隱藏文件夾,可以使用*和?,分別代表多個和一個類型
        ??? <hideFolders>
        ?? ?<folder>.svn</folder>
        ?? ?<folder>CVS</folder>
        ??? </hideFolders>
        ??? //對用戶隱藏文件
        ??? <hideFiles>
        ?? ?<file>.*</file>
        ??? </hideFiles>
        --------------------------
        11、用Java類實現對配置文件config.xml的修改
        ?? 1)在web.xml中添加ConnectorServlet,在servlet下添加配置參數
        ???? <init-param>
        ?? ?<param-name>configuration</param-name>
        ?? ?<param-value>包名.MyConfiguration類名</param-value>
        ???? </init-param>
        ?? 2)編寫MyConfiguration類,可以添加這些方法:init, checkAuthentication,
        ?? ?prepareConfigurationForRequest,and specific getter methods.?

        ????? public class MyConfiguration extends Configuration {

        ??????? public MyConfiguration(ServletConfig servletConfig) {
        ?? ??? ?super(servletConfig);
        ??????? #1、
        ??????? @Override
        ?? ?protected Configuration createConfigurationInstance() {
        ?? ??? ?return new MyConfiguration(this.servletConf);
        ?? ?}
        ????? }
        ???? #2、該示例是修改config.xml中的資源類型
        ?????? @Override
        ?? ?public void init() throws Exception {
        ?? ?? super.init();
        ?? ?? this.baseURL = "/CKFinderJava/userfiles/";
        ?? ?? ResourceType resourceType = this.types.get("Files");
        ?? ?? resourceType.setAllowedExtensions(
        ?? ??? ?resourceType.getAllowedExtensions().concat(",zip,7z"));? ?
        ??????? }
        ???? #3、該方法允許添加自己的檢查,例子:通過測試"loggedIn"session檢查用戶是否被寫進日志
        ??????? @Override
        ? ?? ?public boolean checkAuthentication(final HttpServletRequest request) {
        ?? ?? return request.getSession().getAttribute("loggedIn") != null;
        ?? ?}
        ???? #4、例子:修改xml文件中<licenseName>標簽能被重寫
        ?? ?@Override
        ?? ?public String getLicenseName() {
        ?? ?? return "MyLicenseName";
        ?? ?}
        12、web.xml中配置ConectorServlet,然后在servlet配置下添加配置Java類<init-param>configuration
        ? 1)<servlet>
        ?? ?<servlet-name>ConnectorServlet</servlet-name>
        ?? ?<servlet-class>com.ckfinder.connector.ConnectorServlet</servlet-class>
        ?? ?<init-param>
        ?? ??? ?<param-name>XMLConfig</param-name>
        ?? ??? ?<param-value>/WEB-INF/config.xml</param-value>
        ?? ?</init-param>
        ?? ?<load-on-startup>1</load-on-startup>
        ??? </servlet>
        ??? <servlet-mapping>
        ?? ?<servlet-name>ConnectorServlet</servlet-name>
        ?? ?//虛擬的映射路徑
        ?? ?<url-pattern>
        ?? ??? ?/ckfinder/core/connector/java/connector.java
        ?? ?</url-pattern>
        ??? </servlet-mapping>
        ? 2)配置過濾器
        ??? <filter>
        ?? ?<filter-name>FileUploadFilter</filter-name>
        ?? ?<filter-class>com.ckfinder.connector.FileUploadFilter</filter-class>
        ??????? <init-param>
        ????????????? <param-name>sessionCookieName</param-name>
        ????????????? <param-value>JSESSIONID</param-value>
        ??????? </init-param>
        ??????? <init-param>
        ????????????? <param-name>sessionParameterName</param-name>
        ????????????? <param-value>jsessionid</param-value>
        ??????? </init-param>
        ??? </filter>
        ??? <filter-mapping>
        ?? ?<filter-name>FileUploadFilter</filter-name>
        ?? ?<url-pattern>/ckfinder/core/connector/java/connector.java</url-pattern>

        ??? </filter-mapping>

        13、頁面使用ckfinder標簽
        ??? <%@ taglib uri="http://cksource.com/ckfinder" prefix="ckfinder" %>
        ??? <ckfinder:ckfinder basePath="/CKFinderJava/ckfinder/" />

        總結

        以上是生活随笔為你收集整理的ckfinder的使用及了解config.xml的配置的全部內容,希望文章能夠幫你解決所遇到的問題。

        如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。