我们在进行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项目集成永中文档在线预览相关推荐

  1. java flexpaper_Java+FlexPaper+swfTools 文档在线预览demo

    1.概述 主要原理 1.通过第三方工具openoffice,将word.excel.ppt.txt等文件转换为pdf文件 2.通过swfTools将pdf文件转换成swf格式的文件 3.通过FlexP ...

  2. 用JAVA如何实现word文档在线预览

    1.思路,利用FTL(freemarker)生成word文档 2.利用免费工具aspose将word转换PDF 3使用PDF.JS在线预览. 第一步比较多,就不一一代码.本次主要讲2,3步 源码如下: ...

  3. Java实现office办公文档在线预览(word、excel、ppt、txt等)

    文章目录 一.官网下载openOffice 安装包,运行安装(不同系统的安装请自行百度,这里不做过多描述) 二.pom中引入依赖 三.office文件转为pdf流的工具类 四.service层代码 五 ...

  4. Java如何实现文档在线预览

    文章目录 一.概述 二.Java实现文档在线预览 2.1 永中DCS简介 2.2 使用方式 2.3 centos安装部署DCS服务 编辑Java环境 安装部署Tomcat 部署DCS工程 安装ngin ...

  5. 文档在线预览产品系列-解决方案篇

    文档在线预览产品系列-解决方案篇 hello 大家好,我又来了,上次我们聊到文档在线预览市场的产品类别有很多,今天我们就来盘点下各个类别以及对应的一些产品品牌. 产品类别 开源项目 开源项目是啥就不多 ...

  6. 腾讯轻量+宝塔搭建文档在线预览项目kkFileView

    一.使用的服务 1.腾讯云 [腾讯云]轻量应用服务器Lighthouse,「轻」松上云!1核2G6M 限时低至74元/年起! https://cloud.tencent.com/act/cps/red ...

  7. 永中文档在线转换预览双活实现方案

    永中文档在线转换预览双活实现方案 永中文档在线转换预览服务 是永中软件股份有限公司基于十多年核心技术积累.面向移动互联领域推出的 一款文档处理软件.永中采用自主可控核心技术,具备快速技术和服务响应能力 ...

  8. JAVA-文件文档在线预览项目解决方案-kkFileView

    1. 简介 kkFileView是文件文档在线预览项目解决方案,对标业务付费产品有 永中office,office365,idocv等.该项目使用六星的springboot大家,易上手和部署,基本支持 ...

  9. 文件文档在线预览开源项目kkFileView的使用

    文件文档在线预览开源项目kkFileView的使用 1.项目特性 2.部署过程 2.1 二进制下载部署文件进行部署 2.2 docker方式部署 2.3 通过源代码编绎部署 3.部分配置说明 3.1 ...

  10. web项目使用OpenOffice实现前端在线预览office文档(超详细)

    超详细的OpenOffice实现前端在线预览office文档记录 最近搞一个数字化共享平台,是一个java web项目,使用框架ssm,其中项目有一个需要在线预览PDF.excle.ppt.word文 ...

最新文章

  1. IDEA界面太丑??尝试一下这几个插件!
  2. css box 等高布局,css实现等高布局有哪些方式
  3. Android的三种网络联接方式(URL / HttpURLConnection | HttpClient | InetAddress )
  4. 【华为云技术分享】使用keil5打开GD32F450i的MDK项目出现的问题以及J-Link无法烧录程序对应的解决方案
  5. spring mvc 解决csrf跨站请求攻击
  6. java cookie实例_java 中cookie的详解及简单实例
  7. 配置rsync同步+inotify实时监控
  8. Spring框架学习笔记6-AOP编程-AspectJ方式
  9. 详细版【循环神经网络RNN】(邱锡鹏)
  10. BLP读书摘录和笔记——make
  11. IPv4头部结构具体解释
  12. scratch python插件_scratch插件开发文档
  13. absolute定位宽高尺寸继承
  14. python mqtt库_如何在 Python 中使用 MQTT
  15. amd服务器6300系列,AMD新款Opteron 6300服务器CPU终极评测
  16. ux设计工具_UX设计中的工具和实用主义
  17. 如何解决httpclient调用https请求报错
  18. VS 2017系统找不到指定文件
  19. [易语言][转载]易语言支持库内的DES算法分析
  20. PHP大道至简之农历换算

热门文章

  1. windows环境下curl安装
  2. 使用BabeLua在VS中创建Lua项目。
  3. ISO14001环境管理体系问答篇
  4. CSS字体和文本相关
  5. 大学生计算机知识竞赛,大学生计算机基础知识竞赛题库(试题附答案).docx
  6. 2020 农行笔试题——软开
  7. 【WPF】资源--《深入浅出WPF》by刘铁锰
  8. DSP存储器与寄存器管理
  9. 使用Grafana+loki+promtail入门级部署分布式日志系统(windows环境)
  10. linux下namp简单使用