Coder Social home page Coder Social logo

kekingcn / kkfileview Goto Github PK

View Code? Open in Web Editor NEW
9.9K 57.0 2.6K 675.54 MB

Universal File Online Preview Project based on Spring-Boot

Home Page: https://kkview.cn

Dockerfile 0.01% Java 100.00% Shell 0.01%
fileview kkfileview office-view fileviewer docx java office pdf word

kkfileview's Introduction

kkFileView

Introduction

Document online preview project solution, built using the popular Spring Boot framework for easy setup and deployment. This versatile open source project provides basic support for a wide range of document formats, including:

  1. Supports Office documents such as doc, docx, xls, xlsx, xlsm, ppt, pptx, csv, tsv, , dotm, xlt, xltm, dot, xlam, dotx, xla, ,pages etc.
  2. Supports domestic WPS Office documents such as wps, dps, et , ett, wpt.
  3. Supports OpenOffice, LibreOffice office documents such as odt, ods, ots, odp, otp, six, ott, fodt and fods.
  4. Supports Visio flowchart files such as vsd, vsdx.
  5. Supports Windows system image files such as wmf, emf.
  6. Supports Photoshop software model files such as psd ,eps.
  7. Supports document formats like pdf, ofd, and rtf.
  8. Supports software model files like xmind.
  9. Support for bpmn workflow files.
  10. Support for eml mail files
  11. Support for epub book documents
  12. Supports 3D model files like obj, 3ds, stl, ply, gltf, glb, off, 3dm, fbx, dae, wrl, 3mf, ifc, brep, step, iges, fcstd, bim, etc.
  13. Supports CAD model files such as dwg, dxf, dwf iges , igs, dwt , dng , ifc , dwfx , stl , cf2 , plt, etc.
  14. Supports all plain text files such as txt, xml (rendering), md (rendering), java, php, py, js, css, etc.
  15. Supports compressed packages such as zip, rar, jar, tar, gzip, 7z, etc.
  16. Supports image previewing (flip, zoom, mirror) of jpg, jpeg, png, gif, bmp, ico, jfif, webp, etc.
  17. Supports image information model files such as tif and tiff.
  18. Supports image format files such as tga.
  19. Supports vector image format files such as svg.
  20. Supports mp3,wav,mp4,flv .
  21. Supports many audio and video format files such as avi, mov, wmv, mkv, 3gp, and rm.
  22. Supports for dcm .
  23. Supports for drawio .

Features

  • Build with the popular frame spring boot
  • Easy to build and deploy
  • Basically support online preview of mainstream office documents, such as Doc, docx, Excel, PDF, TXT, zip, rar, pictures, etc
  • REST API
  • Abstract file preview interface so that it is easy to extend more file extensions and develop this project on your own

Official website and DOCS

URL:https://kkview.cn

Live demo

Please treat public service kindly, or this would stop at any time.

URL:https://file.kkview.cn

Contact Us

We will answer your questions carefully and solve any problems you encounter while using the project. We also kindly ask that you at least Google or Baidu before asking questions in order to save time and avoid ineffective communication. Let's cherish our lives and stay away from ineffective communication.

Quick Start

Technology stack

Dependencies

  • Redis(Optional, Unnecessary by default)
  • OpenOffice or LibreOffice(Integrated on Windows, will be installed automatically on Linux, need to be manually installed on Mac OS)
  1. First step:git pull https://github.com/kekingcn/kkFileView.git

  2. second step:Run the main method of /server/src/main/java/cn/keking/ServerMain.java. After starting,visit http://localhost:8012/.

Changelog

December 14, 2022, version 4.1.0 released:

  1. Updated homepage design by @wsd7747.
  2. Compatible with multipage tif for pdf and jpg conversion and multiple page online preview for tif image preview by @zhangzhen1979.
  3. Optimized docker build, using layered build method by @yl-yue.
  4. Implemented file encryption based on userToken cache by @yl-yue.
  5. Implemented preview for encrypted Word, PPT, and Excel files by @yl-yue.
  6. Upgraded Linux & Docker images to LibreOffice 7.3.
  7. Updated OFD preview component, tif preview component, and added support for PPT watermarking.
  8. Numerous other upgrades, optimizations, and bug fixes. We thank @yl-yue, @wsd7747, @zhangzhen1979, @tomhusky, @shenghuadun, and @kischn.sun for their code contributions.

July 6, 2021, version 4.0.0 released:

  1. The integration of OpenOffice in the underlying system has been replaced with LibreOffice, resulting in enhanced compatibility and improved preview effects for Office files.
  2. Fixed the directory traversal vulnerability in compressed files.
  3. Fixed the issue where previewing PPT files in PDF mode was ineffective.
  4. Fixed the issue where the front-end display of image preview mode for PPT files was abnormal.
  5. Added a new feature: the file upload function on the homepage can be enabled or disabled in real-time through configuration.
  6. Optimized the logging of Office process shutdown.
  7. Optimized the logic for finding Office components in Windows environment, with built-in LibreOffice taking priority.
  8. Optimized the synchronous execution of starting Office processes.

June 17, 2021, version 3.6.0 released:

This version includes support for OFD file type versions, and all the important features in this release were contributed by the community. We thank @gaoxingzaq and @zhangxiaoxiao9527 for their code contributions.

  1. Added support for previewing OFD type files. OFD is a domestically produced file format similar to PDF.
  2. Added support for transcoding and previewing video files through ffmpeg. With transcoding enabled, theoretically, all mainstream video file formats such as RM, RMVB, FLV, etc. are supported for preview.
  3. Beautified the preview effect of PPT and PPTX file types, much better looking than the previous version.
  4. Updated the versions of dependencies such as pdfbox, xstream, common-io.

January 28, 2021:

The final update of the Lunar New Year 2020 has been released, mainly including some UI improvements, bug fixes reported by QQ group users and issues, and most importantly, it is a new version for a good year.

  1. Introduced galimatias to solve the problem of abnormal file download caused by non-standard file names.
  2. Updated UI style of index access demonstration interface.
  3. Updated UI style of markdown file preview.
  4. Updated UI style of XML file preview, adjusted the architecture of text file preview to facilitate expansion.
  5. Updated UI style of simTxT file preview.
  6. Adjusted the UI of continuous preview of multiple images to flip up and down.
  7. Simplified all file download IO operations by adopting the apache-common-io package.
  8. XML file preview supports switching to pure text mode.
  9. Enhanced prompt information when url base64 decoding fails.
  10. Fixed import errors and image preview bug.
  11. Fixed the problem of missing log directory when running the release package.
  12. Fixed the bug of continuous preview of multiple images in the compressed package.
  13. Fixed the problem of no universal matching for file type suffixes in uppercase and lowercase.
  14. Specified the use of the Apache Commons-code implementation for Base64 encoding to fix exceptions occurring in some JDK versions.
  15. Fixed the bug of HTML file preview of text-like files.
  16. Fixed the problem of inability to switch between jpg and pdf when previewing dwg files.
  17. Escaped dangerous characters to prevent reflected xss.
  18. Fixed the problem of duplicate encoding causing the failure of document-to-image preview and standardized the encoding.

December 27, 2020:

The year-end major update of 2020 includes comprehensive architecture design, complete code refactoring, significant improvement in code quality, and more convenient secondary development. We welcome you to review the source code and contribute to building by raising issues and pull requests.

  1. Adjusted architecture modules, extensively refactored code, and improved code quality by several levels. Please feel free to review.
  2. Enhanced XML file preview effect and added preview of XML document structure.
  3. Added support for markdown file preview, including support for md rendering and switching between source text and preview.
  4. Switched the underlying web server to jetty, resolving the issue: #168
  5. Introduced cpdetector to solve the problem of file encoding recognition.
  6. Adopted double encoding with base64 and urlencode for URLs to completely solve preview problems with bizarre file names.
  7. Added configuration item office.preview.switch.disabled to control the switch of office file preview.
  8. Optimized text file preview logic, transmitting content through Base64 to avoid requesting file content again during preview.
  9. Disabled the image zoom effect in office preview mode to achieve consistent experience with image and pdf preview.
  10. Directly set pdfbox to be compatible with lower version JDK, and there will be no warning prompts even when run in IDEA.
  11. Removed non-essential toolkits like Guava and Hutool to reduce code volume.
  12. Asynchronous loading of Office components speeds up application launch to within 5 seconds.
  13. Reasonable settings of the number of threads in the preview consumption queue.
  14. Fixed the bug where files in compressed packages failed to preview again.
  15. Fixed the bug in image preview.

May 20th 2020 :

  1. Support for global watermark and dynamic change of watermark content through parameters
  2. Support for CAD file Preview
  3. Add configuration item base.url, support using nginx reverse proxy and set context-path
  4. All configuration items can be read from environment variables, which is convenient for docker image deployment and large-scale use in cluster
  5. Support the configuration of TrustHost (only the file source from the trust site can be previewed), and protect the preview service from abuse
  6. Support configuration of customize cache cleanup time (cron expression)
  7. All recognizable plain text can be previewed directly without downloading, such as .md .java .py, etc
  8. Support configuration to limit PDF file download after conversion
  9. Optimize Maven packaging configuration to solve the problem of line break in .sh script
  10. Place all CDN dependencies on the front end locally for users without external network connection
  11. Comment Service on home page switched from Sohu ChangYan to gitalk
  12. Fixed preview exceptions that may be caused by special characters in the URL
  13. Fixed the addtask exception of the transformation file queue
  14. Fixed other known issues
  15. Official website build: https://kkview.cn
  16. Official docker image repository build: https://hub.docker.com/r/keking/kkfileview

June 18th 2019 :

  1. Support automatic cleaning of cache and preview files
  2. Support http/https stream url file preview
  3. Support FTP url file preview
  4. Add Docker build

April 8th 2019

  1. Cache and queue implementations abstract, providing JDK and REDIS implementations (REDIS becomes optional dependencies)
  2. Provides zip and tar.gz packages, and provides a one-click startup script

January 17th 2018

  1. Refined the project directory, abstract file preview interface, Easy to extend more file extensions and depoly this project on your own
  2. Added English documentation (@幻幻Fate,@汝辉) contribution
  3. Support for more image file extensions
  4. Fixed the issue that image carousel in zip file will always start from the first

January 12th 2018

  1. Support for multiple images preview
  2. Support for images rotation preview in rar/zip

January 2nd 2018

  1. Fixed gibberish issue when preview a txt document caused by the file encoding problem
  2. Fixed the issue that some module dependencies can not be found
  3. Add a spring boot profile, and support for Multi-environment configuration
  4. Add pdf.js to preview the documents such as doc,etc.,support for generating doc headlines as pdf menu,support for mobile preview

Sponsor Us

If this project has been helpful to you, we welcome your sponsorship. Your support is our greatest motivation.!

kkfileview's People

Contributors

asiawu3 avatar christian-l avatar dependabot[bot] avatar even9277 avatar fay1226 avatar gaoxingzaq avatar gitchenjh avatar haonange1314 avatar happytree2017 avatar hwliao avatar jerrykcode avatar klboke avatar lujiamingzz avatar lvshin avatar mhqpx avatar opkcloud avatar sanxihsu avatar shenghuadun avatar spiritree avatar stevenwmq avatar telami avatar wsd7747 avatar xiaxiaxiaxia avatar yiding-he avatar yl-yue avatar youken9980 avatar ypgsh avatar zhangxiaoxiao9527 avatar zhangzhen1979 avatar zzzhouuu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kkfileview's Issues

doc文件中文显示为方框,英文正常显示

No glyph for code 0 (.notdef) in font Times-Bold
2020-04-26 19:21:47.710 WARN 1 --- [nio-8012-exec-9] o.apache.pdfbox.rendering.Type1Glyph2D : No glyph for code 0 (.notdef) in font Times-Bold
2020-04-26 19:21:47.763 WARN 1 --- [nio-8012-exec-9] o.apache.pdfbox.rendering.Type1Glyph2D : No glyph for code 0 (.notdef) in font Times-Bold
2020-04-26 19:21:47.819 WARN 1 --- [nio-8012-exec-9] o.apache.pdfbox.rendering.Type1Glyph2D : No glyph for code 0 (.notdef) in font Times-Bold
2020-04-26 19:21:47.879 WARN 1 --- [nio-8012-exec-9] o.apache.pdfbox.rendering.Type1Glyph2D : No glyph for code 0 (.notdef) in font Times-Bold
2020-04-26 19:21:47.936 WARN 1 --- [nio-8012-exec-9] o.apache.pdfbox.rendering.Type1Glyph2D : No glyph for code 0 (.notdef) in font Times-Bold

如何关闭屏幕中间的触摸按钮?

如题, 因为这个按钮占地面积太大了, 手机端尤为明显.

而且平时只需要用一种就可以了. 哪位大佬知道帮忙告知下! 感谢感谢!~

小白求教

怎么导入这个com.yudianbank:jodconverter:jar包,不知道怎么mvn install,希望能详细告知一下,我也申请加qq群了,qq号是1075651441,望通过

doc 和docx 打不开,其他xls、ppt都可以打开,是什么问题?

doc文档本身是没有问题的,预览的时候就有问题

最新版编译打包。jdk8

控制台错误 日志如下

2019-04-27 12:16:39.063 ERROR 25816 --- [nio-7734-exec-6] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> fileType  [in template "fileNotSupported.ftl" at line 34, column 17]

----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
        - Failed at: ${fileType}  [in template "fileNotSupported.ftl" at line 34, column 15]
----] with root cause

freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> fileType  [in template "fileNotSupported.ftl" at line 34, column 17]

----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
        - Failed at: ${fileType}  [in template "fileNotSupported.ftl" at line 34, column 15]
----
        at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134) ~[freemarker-2.3.26-incubating.jar!/:2.3.26]
        at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:465) ~[freemarker-2.3.26-incubating.jar!/:2.3.26]
        at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:387) ~[freemarker-2.3.26-incubating.jar!/:2.3.26]
        at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:356) ~[freemarker-2.3.26-incubating.jar!/:2.3.26]
        at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:96) ~[freemarker-2.3.26-incubating.jar!/:2.3.26]
        at freemarker.core.DollarVariable.accept(DollarVariable.java:59) ~[freemarker-2.3.26-incubating.jar!/:2.3.26]
        at freemarker.core.Environment.visit(Environment.java:326) ~[freemarker-2.3.26-incubating.jar!/:2.3.26]
        at freemarker.core.Environment.visit(Environment.java:332) ~[freemarker-2.3.26-incubating.jar!/:2.3.26]
        at freemarker.core.Environment.process(Environment.java:305) ~[freemarker-2.3.26-incubating.jar!/:2.3.26]
        at freemarker.template.Template.process(Template.java:378) ~[freemarker-2.3.26-incubating.jar!/:2.3.26]
        at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:368) ~[spring-webmvc-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
        at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:285) ~[spring-webmvc-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
        at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:235) ~[spring-webmvc-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
        at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:167) ~[spring-webmvc-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
        at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303) ~[spring-webmvc-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
        at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1286) ~[spring-webmvc-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
        at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1041) ~[spring-webmvc-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:984) ~[spring-webmvc-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) ~[spring-webmvc-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) ~[spring-webmvc-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) ~[spring-webmvc-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:635) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) ~[spring-webmvc-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.5.23.jar!/:8.5.23]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at cn.keking.filters.ChinesePathFilter.doFilter(ChinesePathFilter.java:26) ~[classes!/:0.1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:108) ~[spring-web-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81) ~[spring-web-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) ~[spring-web-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) [tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803) [tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) [tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) [tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_51]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_51]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.23.jar!/:8.5.23]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_51]

有没有可能实现cdn加速功能?

不知道对文件预览的支持是服务端还是客户端处理的,有没有可能支持cdn服务器的支持?
或者预览页面有没有可能cdn加速?毕竟文件如果全走自己的服务器,在公网上成本会非常之高。

用网关做映射

你好, 我打算用网关做一下转发, 如: http://10.0.126.36:8080/preview?url=, 但在前端调用的时候都会跳转到实际地址下,如:http://10.0.126.37:8012/index
请问这个有什么办法可以解决吗?

spring.cloud.gateway.routes[4].id = file-preview
spring.cloud.gateway.routes[4].uri = http://10.0.126.37:8012/onlinePreview
spring.cloud.gateway.routes[4].predicates[0] = Path=/preview**
spring.cloud.gateway.routes[4].filters[0] = StripPrefix=1

在Windows10中启动了kkFileView-2.1.2版本,预览word报错

预览的地址是:http://127.0.0.1:8012/onlinePreview?url=http%3A%2F%2Fkelan.nat300.top%2Fprofile%2Favatar%2F2019%2F11%2F08%2F123456.doc

报如下错误,这是什么问题????
com.sun.star.task.ErrorCodeIOException:
at com.sun.star.lib.uno.environments.remote.Job.remoteUnoRequestRaisedException(Job.java:177) ~[jurt-3.2.1.jar!/:na]
at com.sun.star.lib.uno.environments.remote.Job.execute(Job.java:143) ~[jurt-3.2.1.jar!/:na]
at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:335) ~[jurt-3.2.1.jar!/:na]
at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:304) ~[jurt-3.2.1.jar!/:na]
at com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:91) ~[jurt-3.2.1.jar!/:na]
at com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:639) ~[jurt-3.2.1.jar!/:na]
at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request(ProxyFactory.java:151) ~[jurt-3.2.1.jar!/:na]
at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke(ProxyFactory.java:133) ~[jurt-3.2.1.jar!/:na]
at com.sun.proxy.$Proxy74.storeToURL(Unknown Source) ~[na:na]
at org.artofsolving.jodconverter.AbstractConversionTask.storeDocument(AbstractConversionTask.java:117) ~[jodconverter-core-1.0-SNAPSHOT.jar!/:na]
at org.artofsolving.jodconverter.AbstractConversionTask.execute(AbstractConversionTask.java:55) ~[jodconverter-core-1.0-SNAPSHOT.jar!/:na]
at org.artofsolving.jodconverter.office.PooledOfficeManager$2.run(PooledOfficeManager.java:75) ~[jodconverter-core-1.0-SNAPSHOT.jar!/:na]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_101]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_101]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_101]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_101]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_101]

springboot启动报注入错误

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'converterUtils': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'office.home' in value "${office.home}"
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:372) ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264) ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761) ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE]
at com.yudianbank.FilePreviewApplication.main(FilePreviewApplication.java:16) [classes/:na]
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'office.home' in value "${office.home}"
at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:174) ~[spring-core-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126) ~[spring-core-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:236) ~[spring-core-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:210) ~[spring-core-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.context.support.PropertySourcesPlaceholderConfigurer$2.resolveStringValue(PropertySourcesPlaceholderConfigurer.java:172) ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:831) ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1086) ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066) ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585) ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366) ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE]
... 17 common frames omitted

发现kkFileView项目中存在REDos漏洞

您好:
我是360代码卫士团队的工作人员,我们在开源代码检测的项目中发现REDos漏洞,如下图
default
inputFilePath参数是可控的,当值为".aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.(a+)+$"
这样类似的值时,会造成服务器拒绝服务。
建议使用replaceAll函数时不要让正则表达式可控

文件没有后缀的情况

我大概看了一下源码的实现,使用的是url解析文件后缀。其实很多时候文件没有后缀,包括下载以后。可否这样去实现呢,下载文件的时候通过文件头去验证文件类型(或者下载文件后,因为有些文件类型的文件头是一致的)。然后再用相应的视图展示。个人建议,望采纳

**玩意

**管理员 快出来哦,你家里都死完了

项目启动报错

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] jodconverter-core ................................. SUCCESS [4.116s]
[INFO] jodconverter-web .................................. FAILURE [15.868s]
[INFO] file-online-preview ............................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 20.648s
[INFO] Finished at: Fri Nov 16 17:55:10 CST 2018
[INFO] Final Memory: 23M/511M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project jodconverter-web: There are test failures.
[ERROR]
[ERROR] Please refer to F:\self\src\kekingcn-file-online-preview-v1.1\jodconverter-web\target\surefire-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn -rf :jodconverter-web

找不到jar

你好,发现一个依赖无法下载到
com.yudianbank
jodconverter
1.0-SNAPSHOT

不好意思,发现这个包来自项目 jodconverter-cor

不同URL, 但文件名相同时, 会使用第一次解析的缓存内容

项目使用了kkFileView, 用户报上传文件后, 浏览的内容不对.
检查发现是用户删除了附件, 然后重新上传新的附件, 文件名称是相同的. 项目每个上传文件的URL都是唯一的.

确定从项目下载的内容是正确的, 检查发现是kkFileView的缓存数据时按文件名建立目录的, 所以会导致浏览内容是其他URL的.

解决方法有:
1.修改项目附件URL的文件名, 增加唯一ID, 比如 产品销售报表_123456789.xlsx
2.修改kkFileView的缓存目录名称, 使用 MD5(url)+产品销售报表_123456789.xlsx

OfficeFilePreviewImpl.java

String md5 = DigestUtils.md5DigestAsHex(decodedUrl.getBytes(StandardCharsets.UTF_8));
String pdfName = md5 + "_" + fileName.substring(0, fileName.lastIndexOf(".")) + "pdf";

CompressFilePreviewImpl.java

String md5 = DigestUtils.md5DigestAsHex(decodedUrl.getBytes(StandardCharsets.UTF_8));
String fileName = md5 + "_" + fileAttribute.getName();

$scope.openWin 这个方法在vue中怎么使用

$scope.openWin 这个方法在vue中怎么使用
$scope.openWin = function (fileUrl) {
var url = configuration.previewUrl + encodeURIComponent(fileUrl);
var winHeight = window.document.documentElement.clientHeight-10;
$window.open(url, "_blank", "height=" + winHeight
+ ",top=80,left=80,toolbar=no, menubar=no, scrollbars=yes, resizable=yes");
};

docker 部署,kkFileView 看视频文件有问题?

url 流文件预览模式,当是视频MP4的时候,有声音播放,可是画面没有显示。
我需要做一些配置吗?

我的调用代码:
``

    function viewMp4() {

        var originUrl = "http://192.168.0.230:8080/v1/AUTH_333104be5d78420e8491bd292afb9554/ljs/KBsPbah2TNSXEJ84tsy8?temp_url_sig=4e8279ef1727332ac87c7544f16261b13025013a&temp_url_expires=1573790594&filename=01%E8%AF%BE%E7%A8%8B%E7%BB%BC%E8%BF%B0.mp4";
        var previewUrl = originUrl + '&fullfilename=myxxxx.mp4';
        window.open('http://192.168.0.115:8012/onlinePreview?url='+encodeURIComponent(previewUrl));

    }

``

centos 7 下 startup.sh语法报错

java.lang.NullPointerException: null
at cn.keking.service.cache.impl.CacheServiceRocksDBImpl.getPDFCache(CacheServiceRocksDBImpl.java:105) ~[classes!/:2.1.2]
at cn.keking.utils.FileUtils.listConvertedFiles(FileUtils.java:41) ~[classes!/:2.1.2]
at cn.keking.service.impl.OfficeFilePreviewImpl.filePreviewHandle(OfficeFilePreviewImpl.java:55) ~[classes!/:2.1.2]
at cn.keking.web.controller.OnlinePreviewController.onlinePreview(OnlinePreviewController.java:56) ~[classes!/:2.1.2]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_172]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_172]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_172]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_172]

项目运行一段时间就报错 ClassNotFoundException

项目启动的时候正常、访问也正常,大概过了一两个小时后,再访问的话页面无法打开。并且日志报错。

Exception in thread "http-nio-7734-Acceptor-0" java.lang.NoClassDefFoundError: ch/qos/logback/classic/spi/ThrowableProxy
        at ch.qos.logback.classic.spi.LoggingEvent.<init>(LoggingEvent.java:119)
        at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:419)
        at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:383)
        at ch.qos.logback.classic.Logger.log(Logger.java:765)
        at org.slf4j.bridge.SLF4JBridgeHandler.callLocationAwareLogger(SLF4JBridgeHandler.java:221)
        at org.slf4j.bridge.SLF4JBridgeHandler.publish(SLF4JBridgeHandler.java:303)
        at java.util.logging.Logger.log(Logger.java:738)
        at java.util.logging.Logger.doLog(Logger.java:765)
        at java.util.logging.Logger.logp(Logger.java:1041)
        at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:181)
        at org.apache.juli.logging.DirectJDKLog.error(DirectJDKLog.java:147)
        at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:483)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: ch.qos.logback.classic.spi.ThrowableProxy
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:94)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 13 more
Exception in thread "http-nio-7734-exec-8" java.lang.NoClassDefFoundError: ch/qos/logback/classic/spi/ThrowableProxy
        at ch.qos.logback.classic.spi.LoggingEvent.<init>(LoggingEvent.java:119)
        at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:419)
        at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:383)
        at ch.qos.logback.classic.Logger.log(Logger.java:765)
        at org.slf4j.bridge.SLF4JBridgeHandler.callLocationAwareLogger(SLF4JBridgeHandler.java:221)
        at org.slf4j.bridge.SLF4JBridgeHandler.publish(SLF4JBridgeHandler.java:303)
        at java.util.logging.Logger.log(Logger.java:738)
        at java.util.logging.Logger.doLog(Logger.java:765)
        at java.util.logging.Logger.logp(Logger.java:1041)
        at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:181)
        at org.apache.juli.logging.DirectJDKLog.error(DirectJDKLog.java:147)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1476)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)

linux 部署启动报错

这个该如何解决?
Caused by: java.lang.IllegalStateException: process with acceptString 'socket,host=127.0.0.1,port=8100' started but its pid could not be found
at org.artofsolving.jodconverter.office.OfficeProcess.start(OfficeProcess.java:90) ~[jodconverter-core-1.0-SNAPSHOT.jar!/:na]
at org.artofsolving.jodconverter.office.OfficeProcess.start(OfficeProcess.java:54) ~[jodconverter-core-1.0-SNAPSHOT.jar!/:na]
at org.artofsolving.jodconverter.office.ManagedOfficeProcess.doStartProcessAndConnect(ManagedOfficeProcess.java:113) ~[jodconverter-core-1.0-SNAPSHOT.jar!/:na]

在转换docx 时,后端抛出CancellationException

java.util.concurrent.CancellationException: null
at java.util.concurrent.FutureTask.report(FutureTask.java:121)
at java.util.concurrent.FutureTask.get(FutureTask.java:206)
at org.artofsolving.jodconverter.office.PooledOfficeManager.execute(PooledOfficeManager.java:84)
at org.artofsolving.jodconverter.office.ProcessPoolOfficeManager.execute(ProcessPoolOfficeManager.java:74)
at org.artofsolving.jodconverter.OfficeDocumentConverter.convert(OfficeDocumentConverter.java:72)
at org.artofsolving.jodconverter.OfficeDocumentConverter.convert(OfficeDocumentConverter.java:63)
at cn.keking.utils.OfficeToPdf.converterFile(OfficeToPdf.java:51)
at cn.keking.utils.OfficeToPdf.office2pdf(OfficeToPdf.java:79)
at cn.keking.utils.OfficeToPdf.openOfficeToPDF(OfficeToPdf.java:30)
at cn.keking.service.impl.OfficeFilePreviewImpl.filePreviewHandle(OfficeFilePreviewImpl.java:59)
at cn.keking.web.controller.OnlinePreviewController.onlinePreview(OnlinePreviewController.java:48)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at cn.keking.filters.ChinesePathFilter.doFilter(ChinesePathFilter.java:25)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:108)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)

运行错误

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.342 s
[INFO] Finished at: 2018-10-30T13:42:58+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Unknown lifecycle phase "jodconverter-web". You must specify a valid lifecycle phase or a goal in the format : or :[:]:. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/LifecyclePhaseNotFoundException

excel

xls文件转html没有乱码,但是在代码里面强转utf-8后中文乱码

200M文件pptx测试

试了下大文件 200M文件pptx,我是直接把文件放在了 demo 目录,预览时就服务器500了,服务器输出如下:
2018-12-10 17:40:31.197 ERROR 24067 --- [nio-8012-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.artofsolving.jodconverter.office.OfficeException: task did not complete within timeout] with root cause

java.util.concurrent.TimeoutException: null
at ......

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.