更新文档&细节调整

This commit is contained in:
陈精华 2020-05-20 06:52:49 +08:00 committed by kl
parent c7318c2b17
commit 26e147b426
6 changed files with 117 additions and 27 deletions

View File

@ -26,8 +26,9 @@ URL[https://kkfileview.keking.cn](https://kkfileview.keking.cn)
URL[https://file.keking.cn](https://file.keking.cn)
### Documentation
1. Full wiki documenthttps://gitee.com/kekingcn/file-online-preview/wikis/pages
1. 中文文档https://gitee.com/kekingcn/file-online-preview/blob/master/README.md
1. English documenthttps://github.com/kekingcn/kkFileView/blob/master/README.en.md
1. English documenthttps://gitee.com/kekingcn/file-online-preview/blob/master/README.en.md
### Contact us && Join us
> We will answer everyone's questions in use of this project.
@ -38,20 +39,62 @@ Cherish life away from ineffective communication.
QQ group613025121
### Pictures for some samples
> Excel
#### 1. Text Preview
It supports preview of all types of text documents. Because there are too many types of text documents, it is impossible to enumerate them. The default open types are as follows: txt,html,htm,asp,jsp,xml,json,properties,md,gitignore,log,java,py,c,cpp,sql,sh,bat,m,bas,prg,cmd
The text preview effect is as follows
![text](https://kkfileview.keking.cn/img/preview/preview-text.png)
![输入图片说明](https://gitee.com/uploads/images/2017/1213/093051_cd55b3ec_492218.png "屏幕截图.png")
> doc
#### 2. Picture preview
Support jpg, jpeg, png, gif and other picture previews (flip, zoom, mirror). The preview effect is as follows
![image](https://kkfileview.keking.cn/img/preview/preview-image.png)
![输入图片说明](https://gitee.com/uploads/images/2017/1213/092350_5b2ecbe5_492218.png "屏幕截图.png")
#### 3. Word document preview
Doc and docx document previews are supported. There are two modes of word previews: one is that each page of word is converted to picture previews, the other is that the whole word document is converted to PDF, and then previews PDF. The applicable scenarios of the two modes are as follows
* Picture preview modes: the word file is large, and the whole PDF loaded in the foreground is too slow
* Pdf Preview modes: intranet access, loading PDF fast
The preview effect of picture preview mode is as follows
![word1](https://kkfileview.keking.cn/img/preview/preview-doc-image.png)
The preview effect of PDF preview mode is as follows
![word2](https://kkfileview.keking.cn/img/preview/preview-doc-pdf.png)
> zip,rar
#### 4. PPT document preview
ppt and pptx document preview are supported. Like word documents, there are two preview modes
The preview effect of picture preview mode is as follows
![ppt1](https://kkfileview.keking.cn/img/preview/preview-ppt-image.png)
The preview effect of PDF preview mode is as follows
![ppt2](https://kkfileview.keking.cn/img/preview/preview-ppt-pdf.png)
![输入图片说明](https://gitee.com/uploads/images/2017/1213/093806_46cede06_492218.png "屏幕截图.png")
#### 5. PDF document preview
Pdf document preview is supported. Like word document, there are two preview modes
The preview effect of picture preview mode is as follows
![pdf1](https://kkfileview.keking.cn/img/preview/preview-pdf-image.png)
The preview effect of PDF preview mode is as follows
![pdf2](https://kkfileview.keking.cn/img/preview/preview-pdf-pdf.png)
> png,jpeg,jpg,etc., support for zooming with mouse scroll, rotation, inversion,etc.
#### 6. EXCEL document preview
Support XLS, xlsx document preview, the preview effect is as follows
![excel](https://kkfileview.keking.cn/img/preview/preview-xls.png)
![输入图片说明](https://gitee.com/uploads/images/2017/1213/094335_657a6f60_492218.png "屏幕截图.png")
#### 7. Compressed file Preview
Support zip, rar, jar, tar, gzip and other compressed packages. The preview effect is as follows
![compress1](https://kkfileview.keking.cn/img/preview/preview-zip.png)
Click the file name in the compressed package to preview the file directly. The preview effect is as follows
![compress2](https://kkfileview.keking.cn/img/preview/preview-zip-inner.png)
#### 8. Multimedia file Preview
Theoretically, all video and audio files are supported. Since all file formats cannot be enumerated, the default open type is as follows
mp3,wav,mp4,flv
The video preview effect is as follows
![media1](https://kkfileview.keking.cn/img/preview/preview-video.png)
The audio preview effect is as follows
![media2](https://kkfileview.keking.cn/img/preview/preview-audio.png)
#### 9. CAD document preview
CAD DWG document preview is supported. Like word document, there are two preview modes
The preview effect of Picture preview mode is as follows
![cad1](https://kkfileview.keking.cn/img/preview/preview-cad-image.png)
The preview effect of PDF preview mode is as follows
![cad2](https://kkfileview.keking.cn/img/preview/preview-cad-pdf.png)
Considering space issues, the pictures of other types of documents will not be shown here.You can deploy it by yourself if you are interested in our project.There is a way to deploy it as below.
### Quick Start

View File

@ -2,7 +2,7 @@
此项目为文件文档在线预览项目解决方案对标业内付费产品有[永中office](http://dcs.yozosoft.com/)[office365](http://www.officeweb365.com/)[idocv](https://www.idocv.com/)在取得公司高层同意后以Apache协议开源出来反哺社区在此特别感谢@唐老大的支持以及@端木详笑的贡献该项目使用流行的spring boot搭建易上手和部署基本支持主流办公文档的在线预览如doc,docx,Excel,pdf,txt,zip,rar,图片等等
### 项目特性
1. 支持officepdf等办公文档
1. 支持officepdf, cad等办公文档
1. 支持txt,java,php,py,md,js,css等所有纯文本
1. 支持zip,rar,jar,tar,gzip等压缩包
1. 支持jpgjpegpnggif等图片预览翻转缩放镜像
@ -23,7 +23,7 @@
### 项目文档Project documentation
1. 详细wiki文档https://gitee.com/kekingcn/file-online-preview/wikis/pages
1. 中文文档https://gitee.com/kekingcn/file-online-preview/blob/master/README.md
1. English documenthttps://github.com/kekingcn/kkFileView/blob/master/README.en.md
1. English documenthttps://gitee.com/kekingcn/file-online-preview/blob/master/README.en.md
### 联系我们加入组织
> 我们会用心回答解决大家在项目使用中的问题也请大家在提问前至少Google或baidu过珍爱生命远离无效的交流沟通
@ -32,20 +32,62 @@
QQ群号613025121
### 文档预览效果
> Excel预览效果
#### 1. 文本预览
支持所有类型的文本文档预览 由于文本文档类型过多无法全部枚举默认开启的类型如下 txt,html,htm,asp,jsp,xml,json,properties,md,gitignore,log,java,py,c,cpp,sql,sh,bat,m,bas,prg,cmd
文本预览效果如下
![文本预览效果如下](https://kkfileview.keking.cn/img/preview/preview-text.png)
![输入图片说明](https://gitee.com/uploads/images/2017/1213/093051_cd55b3ec_492218.png "屏幕截图.png")
> doc预览效果
#### 2. 图片预览
支持jpgjpegpnggif等图片预览翻转缩放镜像预览效果如下
![图片预览](https://kkfileview.keking.cn/img/preview/preview-image.png)
![输入图片说明](https://gitee.com/uploads/images/2017/1213/092350_5b2ecbe5_492218.png "屏幕截图.png")
#### 3. word文档预览
支持docdocx文档预览word预览有两种模式一种是每页word转为图片预览另一种是整个word文档转成pdf再预览pdf两种模式的适用场景如下
* 图片预览word文件大前台加载整个pdf过慢
* pdf预览内网访问加载pdf快
图片预览模式预览效果如下
![word文档预览1](https://kkfileview.keking.cn/img/preview/preview-doc-image.png)
pdf预览模式预览效果如下
![word文档预览2](https://kkfileview.keking.cn/img/preview/preview-doc-pdf.png)
> zip,rar压缩预览效果
#### 4. ppt文档预览
支持pptpptx文档预览和word文档一样有两种预览模式
图片预览模式预览效果如下
![ppt文档预览1](https://kkfileview.keking.cn/img/preview/preview-ppt-image.png)
pdf预览模式预览效果如下
![ppt文档预览2](https://kkfileview.keking.cn/img/preview/preview-ppt-pdf.png)
![输入图片说明](https://gitee.com/uploads/images/2017/1213/093806_46cede06_492218.png "屏幕截图.png")
#### 5. pdf文档预览
支持pdf文档预览和word文档一样有两种预览模式
图片预览模式预览效果如下
![pdf文档预览1](https://kkfileview.keking.cn/img/preview/preview-pdf-image.png)
pdf预览模式预览效果如下
![pdf文档预览2](https://kkfileview.keking.cn/img/preview/preview-pdf-pdf.png)
> png,jpeg,jpg等图片预览效果支持滚轮缩放旋转倒置等
#### 6. excel文档预览
支持xlsxlsx文档预览预览效果如下
![excel文档预览](https://kkfileview.keking.cn/img/preview/preview-xls.png)
![输入图片说明](https://gitee.com/uploads/images/2017/1213/094335_657a6f60_492218.png "屏幕截图.png")
#### 7. 压缩文件预览
支持zip,rar,jar,tar,gzip等压缩包预览效果如下
![压缩文件预览1](https://kkfileview.keking.cn/img/preview/preview-zip.png)
可点击压缩包中的文件名直接预览文件预览效果如下
![压缩文件预览2](https://kkfileview.keking.cn/img/preview/preview-zip-inner.png)
#### 8. 多媒体文件预览
理论上支持所有的视频音频文件由于无法枚举所有文件格式默认开启的类型如下
mp3,wav,mp4,flv
视频预览效果如下
![多媒体文件预览1](https://kkfileview.keking.cn/img/preview/preview-video.png)
音频预览效果如下
![多媒体文件预览2](https://kkfileview.keking.cn/img/preview/preview-audio.png)
#### 9. CAD文档预览
支持CAD dwg文档预览和word文档一样有两种预览模式
图片预览模式预览效果如下
![cad文档预览1](https://kkfileview.keking.cn/img/preview/preview-cad-image.png)
pdf预览模式预览效果如下
![cad文档预览2](https://kkfileview.keking.cn/img/preview/preview-cad-pdf.png)
考虑说明篇幅原因就不贴其他格式文件的预览效果了感兴趣的可以参考下面的实例搭建下
### 快速开始

View File

@ -65,7 +65,8 @@ ftp.control.encoding = ${KK_FTP_CONTROL_ENCODING:UTF-8}
#水印内容
#watermark.txt = ${WATERMARK_TXT:凯京科技内部文件严禁外泄}
watermark.txt = ${WATERMARK_TXT:kkFileView文件预览}
#如需取消水印内容设置为空即可watermark.txt = ${WATERMARK_TXT:}
watermark.txt = ${WATERMARK_TXT:}
#水印x轴间隔
watermark.x.space = ${WATERMARK_X_SPACE:10}
#水印y轴间隔

View File

@ -21,7 +21,7 @@ public class URLUtil {
* @return 标准化后的URL字符串
*/
public static String normalize(String url) {
return normalize(url, false);
return normalize(url, false, false);
}
/**
@ -33,10 +33,11 @@ public class URLUtil {
*
* @param url URL字符串
* @param isEncodeBody 是否对URL中body部分的中文和特殊字符做转义不包括http:/
* @param isEncodeParam 是否对URL中参数部分的中文和特殊字符做转义
* @return 标准化后的URL字符串
* @since 4.4.1
*/
public static String normalize(String url, boolean isEncodeBody) {
public static String normalize(String url, boolean isEncodeBody, boolean isEncodeParam) {
if (StrUtil.isBlank(url)) {
return url;
}
@ -54,7 +55,7 @@ public class URLUtil {
final int paramsSepIndex = StrUtil.indexOf(body, '?');
String params = null;
if (paramsSepIndex > 0) {
params = StrUtil.subSuf(body, paramsSepIndex);
params = StrUtil.subSuf(body, paramsSepIndex + 1);
body = StrUtil.subPre(body, paramsSepIndex);
}
@ -64,6 +65,9 @@ public class URLUtil {
body = body.replace("\\", "/").replaceAll("//+", "/");
if (isEncodeBody) {
body = URLEncoder.DEFAULT.encode(body, StandardCharsets.UTF_8);
if (params != null) {
params = "?" + URLEncoder.DEFAULT.encode(params, StandardCharsets.UTF_8);
}
}
return pre + body + StrUtil.nullToEmpty(params);
}

View File

@ -58,7 +58,7 @@ public class DownloadUtils {
URL url = new URL(urlStr);
OutputStream os = new FileOutputStream(new File(realPath));
if (url.getProtocol() != null && url.getProtocol().toLowerCase().startsWith("http")) {
saveToOutputStreamFormUrl(urlStr, os);
saveToOutputStreamFromUrl(urlStr, os);
} else if (url.getProtocol() != null && "ftp".equals(url.getProtocol().toLowerCase())) {
String ftpUsername = fileUtils.getUrlParameterReg(fileAttribute.getUrl(), URL_PARAM_FTP_USERNAME);
String ftpPassword = fileUtils.getUrlParameterReg(fileAttribute.getUrl(), URL_PARAM_FTP_PASSWORD);
@ -88,12 +88,12 @@ public class DownloadUtils {
}
}
public boolean saveToOutputStreamFormUrl(String urlStr, OutputStream os) throws IOException {
public boolean saveToOutputStreamFromUrl(String urlStr, OutputStream os) throws IOException {
InputStream is = getInputStreamFromUrl(urlStr);
if (is != null) {
copyStream(is, os);
} else {
urlStr = URLUtil.normalize(urlStr, true);
urlStr = URLUtil.normalize(urlStr, true, true);
is = getInputStreamFromUrl(urlStr);
if (is != null) {
copyStream(is, os);

View File

@ -84,7 +84,7 @@ public class OnlinePreviewController {
public void getCorsFile(String urlPath, HttpServletResponse response) {
logger.info("下载跨域pdf文件url{}", urlPath);
try {
downloadUtils.saveToOutputStreamFormUrl(urlPath, response.getOutputStream());
downloadUtils.saveToOutputStreamFromUrl(urlPath, response.getOutputStream());
} catch (IOException e) {
logger.error("下载跨域pdf文件异常url{}", urlPath, e);
}