當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringBoot集成ckfinder3.5.1
生活随笔
收集整理的這篇文章主要介紹了
SpringBoot集成ckfinder3.5.1
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1、下載ckfinder3.5.1
地址:https://ckeditor.com/ckfinder/download/#java
2、創(chuàng)建springboot項目并導入相關的ckfinder文件
創(chuàng)建springboot項目的過程此處不再進行展示,創(chuàng)建完項目后就把剛才下載的ckfinder中的相關文件拷貝到項目中。如下圖把標記的兩個文件直接復制拷貝到項目的java路徑下。
3、導入ckfinder的maven依賴
在復制拷貝上面文件后會有一些報錯是關于沒有相關的ckfinder的jar,然后我們需要在pom.xml中導入相關依賴,如下圖為我的pom.xml的內容,標記的地方為ckfinder依賴。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.4.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- ckfinder依賴 --><dependency><groupId>com.cksource</groupId><artifactId>ckfinder3</artifactId><version>3.5.1</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build><!-- ckfinder依賴 --><repositories><repository><id>cksource-mvn-repo</id><name>CKSource Maven Repository</name><url>https://maven.cksource.com/</url></repository></repositories> </project>4、修改相關配置
1、復制拷貝ckfinder.yml到resources文件夾下然后把第一行的enabled:false改為true。
2、修改啟動類注冊ckfinder的servlet,下面為啟動類代碼。
package com.example.demo;import com.cksource.ckfinder.servlet.CKFinderServlet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletContextInitializer; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;import javax.servlet.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.nio.file.Files;@SpringBootApplication public class DemoApplication implements ServletContextInitializer, WebMvcConfigurer {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}@Overridepublic void onStartup(ServletContext servletContext) {// Register the CKFinder's servlet.ServletRegistration.Dynamic dispatcher = servletContext.addServlet("ckfinder", new CKFinderServlet());dispatcher.setLoadOnStartup(1);dispatcher.addMapping("/ckfinder/*");//這個地方一定要注意為你的項目的下的ckinder文件路徑dispatcher.setInitParameter("scan-path", "com.example.demo.ckfinder");//一定要修改為自己的項目路徑FilterRegistration.Dynamic filter = servletContext.addFilter("x-content-options", new Filter() {@Overridepublic void init(FilterConfig filterConfig) {}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {((HttpServletResponse) response).setHeader("X-Content-Type-Options", "nosniff");chain.doFilter(request, response);}@Overridepublic void destroy() {}});filter.addMappingForUrlPatterns(null, false, "/userfiles/*");String tempDirectory;try {tempDirectory = Files.createTempDirectory("ckfinder").toString();} catch (IOException e) {tempDirectory = null;}dispatcher.setMultipartConfig(new MultipartConfigElement(tempDirectory));}@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {// Configure the resource handler to serve files uploaded with CKFinder.String publicFilesDir = String.format("file:%s/userfiles/", System.getProperty("user.dir"));registry.addResourceHandler("/userfiles/**").addResourceLocations(publicFilesDir);}}3、修改CustomConfigLoader類中的訪問你的ckfinder.yml的路徑
package com.example.demo.ckfinder.config;import com.cksource.ckfinder.config.Config; import com.cksource.ckfinder.config.loader.ConfigLoader; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;import javax.inject.Named; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths;@Named public class CustomConfigLoader implements ConfigLoader {@Overridepublic Config loadConfig() throws Exception {ObjectMapper mapper = new ObjectMapper(new YAMLFactory());//這里你自己項目的ckinder.yml的路徑,我的放在resources下面Path configPath = Paths.get(System.getProperty("user.dir")+"\\src\\main\\resources", "ckfinder.yml");return mapper.readValue(Files.newInputStream(configPath), CustomConfig.class);} }4、修改IndexController中需要訪問的ckfinder.html頁面代碼
package com.example.demo;import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletResponse;@RestController public class IndexController {@RequestMapping("/ckfinder.html")public void index(HttpServletResponse response) {// Redirect to CKFinder's samples.response.setHeader("Location", "/ckfinder/static/ckfinder.html");response.setStatus(302);} }5、啟動訪問并配置文件上傳路徑
1、配置成功后訪問http://localhost:8081/ckfinder.html
@RequestMapping("/ckfinder.html")配置的訪問路徑2、配置上傳路徑
這里我沒有做修改按照文件原本的配置,如果修改看我標記的地方
然后在項目根路徑下創(chuàng)建userfiles文件
3、測試上傳
到此簡單的springboot集成ckfinder3.5.1已經全部做完!大家共同學習!!!
總結
以上是生活随笔為你收集整理的SpringBoot集成ckfinder3.5.1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EAS小贷系统(财务业务一体化)
- 下一篇: JSP实验-简单页面设计