Java项目集成永中文档在线预览
我们在进行java web软件开发的时候经常会遇到的一个问题就是在线预览文件,针对于图片或者pd可以直接在浏览器中打开我们不用过多考虑,但是我们想要预览word,excel或者ppt的时候就没那么简单了,因为浏览器无法直接打开这些文件,那么我们如何能够实现word,excel等文件的在线预览呢?如果不使用外部直接在线预览的插件,我们往往是将word,excel转化为pdf在进行预览,但是这种方式特别复杂,word,excel转化为pdf往往会失真,转化后的pdf与原文件差别比较大,想使用这种方式进行在线预览往往会适得其反。在这里我推荐大家使用永中云转换(https://api.yozocloud.cn/)进行word,excel,ppt等文件的在线预览。
废话不多说下面我们来介绍永中在线预览的使用,我们采用前后端分离的方式来开发,前端采用vue.js+elementUi 后端采用springboot+enbatis+mongodb+mysql的方式来开发。
首先介绍下永中在线预览的使用方法:官方网址永中云转换-文档在线预览SaaS服务
第一步:我们先注册账号,也可采用QQ登录的方式
第二部:注册完成之后登录进入个人中心
第三步:在域名管理页面中添加域名(文件公网下载地址所对应的域名)
第三步:拼接api预览地址
http://dcsapi.com/?k=域名key&url=要预览的文件下载地址
例如:http://dcsapi.com/?k=1744232&url=http://58.215.166.234/example/doc/doctest.docx
参数说明:
1、参数k:系统会在新增域名时自动生成一个key,用来验证域名是否合法。
2、参数url:文件的下载地址 ,比如:http://dcs.yozosoft.com/yozodoc.docx。
四个可选参数:
1、noCache:Boolean格式。是否强制重新转换(忽略缓存),true为强制重新转换,false为不强制重新转换。
2、watermark:String格式。针对单文档设置水印内容。
3、isCopy:Integer格式(0否1是,默认为0。针对单文档设置是否防复制)。
4、pageStart:Integer格式;pageEnd:Integer格式。试读功能(转换页数的起始页和转换页数的终止页,拥有对应权限的域名才能调用)。
下面是在我的项目里面使用永中在线预览的例子,地址如下:
http://dcsapi.com/?k=46557811511289446532960&url=https://www.youandi.top:9300/v1/oss/preview?file_id=5ebb58c91da1607dcfdd7b2e
其中https://www.youandi.top:9300/v1/oss/preview?file_id=5ebb58c91da1607dcfdd7b2e是我的word文档所在的地址。在浏览器访问即可在线预览如下图
这就是永中在线预览的使用方法,我们发现特别简单。下面介绍使用使用springboot+enbatis+mongodb+mysql搭建文件上传功能
第一步:参考springboot整合enbatis快速搭建java开发项目(springboot整合enbatis快速搭建java开发项目_wwd8979的博客-CSDN博客)创建springboot项目
第二部:创建mysql文件存储表
CREATE TABLE `sys_file` (
`id` bigint(0) NOT NULL COMMENT '主键',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '文件名称',
`url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '文件地址',
`create_time` timestamp(0) DEFAULT NULL COMMENT '上传时间',
`uid` bigint(0) DEFAULT NULL,
`update_time` timestamp(0) DEFAULT NULL,
`lid` bigint(0) DEFAULT NULL,
`deleted` int(0) DEFAULT 0,
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
并自动生成代码参考enbatis代码自动生成:http://api.youandi.top/#/code_product
第三步:安装mongodb
第四步:springboot整合mongodb
在springboot的application-dev.yml文件中spring下配置spring:
spring: data:mongodb:host: 自己服务器对应的ip地址port: 27017database: gridfs
编写配置类:
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.gridfs.GridFSBucket;
import com.mongodb.client.gridfs.GridFSBuckets;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.MongoDbFactory;
@Configuration
public class MongoConf {@Autowiredprivate MongoDbFactory mongoDbFactory;@Autowiredprivate GridFSBucket gridFSBucket;@Beanpublic GridFSBucket getGridFSBuckets() {MongoDatabase db = mongoDbFactory.getDb();return GridFSBuckets.create(db);}}
编写mongodb的控制器:
import com.boot.youi.service.MongoDbService;
import com.enbatis.mybatisplugs.base.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;@RestController
@RequestMapping("v1/oss")
public class MongoDbController extends BaseController {@Autowiredprivate MongoDbService mongoDbService;@GetMapping(value = "/downloadFile")public void downloadFile(@RequestParam("file_id") String fileId) {mongoDbService.downloadFile(fileId,request,response);}@PostMapping(value = "/upload")public void uploadFile(@RequestParam("businessId") String businessId, @RequestParam("file") MultipartFile file) {mongoDbService.saveFile(file);}@GetMapping(value = "/preview")public void preview(@RequestParam("file_id") String fileId) {mongoDbService.preview(fileId,request,response);}}
具体代码可见码云一阵清风/YOUI
第五步:在SysFileController下编写上传文件代码,具体代码可见码云一阵清风/YOUI:
@PostMapping(value = "/upload")
public ResultReturn<Boolean> uploadLife(@RequestParam("id") Long id, @RequestParam("file") MultipartFile file) throws Exception {return success(sysFileService.upload(id,file));
}
@Service
public class SysFileServiceImpl extends BaseServiceImpl<SysFileMapper,SysFile > implements SysFileService {@Autowiredprivate MongoDbService mongoDbService;@Overridepublic boolean upload(Long id, MultipartFile file) {if(null==id){return false;}String key= mongoDbService.saveFile(file);if (StringUtils.isBlank(key)){return false;}SysFile sysFile=new SysFile();sysFile.setId(id);//此处的域名需要大家去申请,并备案成功之后才能使用sysFile.setUrl("https://www.youandi.top:9300/v1/oss/preview?file_id="+key);updateById(sysFile);return true;}
}
上传完成之后会通过MongoDbController的preview方法预览
@GetMapping(value = "/preview")
public void preview(@RequestParam("file_id") String fileId) {mongoDbService.preview(fileId,request,response);
}
在前端调用方式为:
look(data){open('http://dcsapi.com/?k=46557811511289446532960&url='+data.url)console.log(data);
},其中data.url就是"https://www.youandi.top:9300/v1/oss/preview?file_id="+key
下面展示下效果图:
今天java项目集成永中在线预览就介绍到这了 大家有相关的问题可以联系我微信:WwdaiPxj
微信搜索公众号 ”Java软件编程技术“ 关注我们获取更多软件开发技术
Java项目集成永中文档在线预览相关推荐
- java flexpaper_Java+FlexPaper+swfTools 文档在线预览demo
1.概述 主要原理 1.通过第三方工具openoffice,将word.excel.ppt.txt等文件转换为pdf文件 2.通过swfTools将pdf文件转换成swf格式的文件 3.通过FlexP ...
- 用JAVA如何实现word文档在线预览
1.思路,利用FTL(freemarker)生成word文档 2.利用免费工具aspose将word转换PDF 3使用PDF.JS在线预览. 第一步比较多,就不一一代码.本次主要讲2,3步 源码如下: ...
- Java实现office办公文档在线预览(word、excel、ppt、txt等)
文章目录 一.官网下载openOffice 安装包,运行安装(不同系统的安装请自行百度,这里不做过多描述) 二.pom中引入依赖 三.office文件转为pdf流的工具类 四.service层代码 五 ...
- Java如何实现文档在线预览
文章目录 一.概述 二.Java实现文档在线预览 2.1 永中DCS简介 2.2 使用方式 2.3 centos安装部署DCS服务 编辑Java环境 安装部署Tomcat 部署DCS工程 安装ngin ...
- 文档在线预览产品系列-解决方案篇
文档在线预览产品系列-解决方案篇 hello 大家好,我又来了,上次我们聊到文档在线预览市场的产品类别有很多,今天我们就来盘点下各个类别以及对应的一些产品品牌. 产品类别 开源项目 开源项目是啥就不多 ...
- 腾讯轻量+宝塔搭建文档在线预览项目kkFileView
一.使用的服务 1.腾讯云 [腾讯云]轻量应用服务器Lighthouse,「轻」松上云!1核2G6M 限时低至74元/年起! https://cloud.tencent.com/act/cps/red ...
- 永中文档在线转换预览双活实现方案
永中文档在线转换预览双活实现方案 永中文档在线转换预览服务 是永中软件股份有限公司基于十多年核心技术积累.面向移动互联领域推出的 一款文档处理软件.永中采用自主可控核心技术,具备快速技术和服务响应能力 ...
- JAVA-文件文档在线预览项目解决方案-kkFileView
1. 简介 kkFileView是文件文档在线预览项目解决方案,对标业务付费产品有 永中office,office365,idocv等.该项目使用六星的springboot大家,易上手和部署,基本支持 ...
- 文件文档在线预览开源项目kkFileView的使用
文件文档在线预览开源项目kkFileView的使用 1.项目特性 2.部署过程 2.1 二进制下载部署文件进行部署 2.2 docker方式部署 2.3 通过源代码编绎部署 3.部分配置说明 3.1 ...
- web项目使用OpenOffice实现前端在线预览office文档(超详细)
超详细的OpenOffice实现前端在线预览office文档记录 最近搞一个数字化共享平台,是一个java web项目,使用框架ssm,其中项目有一个需要在线预览PDF.excle.ppt.word文 ...
最新文章
- IDEA界面太丑??尝试一下这几个插件!
- css box 等高布局,css实现等高布局有哪些方式
- Android的三种网络联接方式(URL / HttpURLConnection | HttpClient | InetAddress )
- 【华为云技术分享】使用keil5打开GD32F450i的MDK项目出现的问题以及J-Link无法烧录程序对应的解决方案
- spring mvc 解决csrf跨站请求攻击
- java cookie实例_java 中cookie的详解及简单实例
- 配置rsync同步+inotify实时监控
- Spring框架学习笔记6-AOP编程-AspectJ方式
- 详细版【循环神经网络RNN】(邱锡鹏)
- BLP读书摘录和笔记——make
- IPv4头部结构具体解释
- scratch python插件_scratch插件开发文档
- absolute定位宽高尺寸继承
- python mqtt库_如何在 Python 中使用 MQTT
- amd服务器6300系列,AMD新款Opteron 6300服务器CPU终极评测
- ux设计工具_UX设计中的工具和实用主义
- 如何解决httpclient调用https请求报错
- VS 2017系统找不到指定文件
- [易语言][转载]易语言支持库内的DES算法分析
- PHP大道至简之农历换算