更新文档&细节调整
This commit is contained in:
parent
c7318c2b17
commit
26e147b426
61
README.en.md
61
README.en.md
|
@ -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 document:https://gitee.com/kekingcn/file-online-preview/wikis/pages
|
||||
1. 中文文档:https://gitee.com/kekingcn/file-online-preview/blob/master/README.md
|
||||
1. English document:https://github.com/kekingcn/kkFileView/blob/master/README.en.md
|
||||
1. English document:https://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 group:613025121
|
||||
|
||||
### 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
|
||||
|
|
62
README.md
62
README.md
|
@ -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. 支持office,pdf等办公文档
|
||||
1. 支持office,pdf, cad等办公文档
|
||||
1. 支持txt,java,php,py,md,js,css等所有纯文本
|
||||
1. 支持zip,rar,jar,tar,gzip等压缩包
|
||||
1. 支持jpg,jpeg,png,gif等图片预览(翻转,缩放,镜像)
|
||||
|
@ -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 document:https://github.com/kekingcn/kkFileView/blob/master/README.en.md
|
||||
1. English document:https://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. 图片预览
|
||||
支持jpg,jpeg,png,gif等图片预览(翻转,缩放,镜像),预览效果如下
|
||||
![图片预览](https://kkfileview.keking.cn/img/preview/preview-image.png)
|
||||
|
||||
![输入图片说明](https://gitee.com/uploads/images/2017/1213/092350_5b2ecbe5_492218.png "屏幕截图.png")
|
||||
#### 3. word文档预览
|
||||
支持doc,docx文档预览,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文档预览
|
||||
支持ppt,pptx文档预览,和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文档预览
|
||||
支持xls,xlsx文档预览,预览效果如下
|
||||
![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)
|
||||
考虑说明篇幅原因,就不贴其他格式文件的预览效果了,感兴趣的可以参考下面的实例搭建下
|
||||
|
||||
### 快速开始
|
||||
|
|
|
@ -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轴间隔
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue