Office在线预览

您所在的位置:网站首页 永中office云文档怎么下载 Office在线预览

Office在线预览

2023-10-09 00:43| 来源: 网络整理| 查看: 265

概述

官方网站:http://api.yozocloud.cn/ 

优点:很便宜(一个域名一年3000),使用难易程度接近0,可单独在内网部署,可预览office套装:word、excel、ppf、pdf、图片、txt等很多文档类型;(使用:仅需要提供个域名下的文件下载接口,注册账号有500次预览体验)。

缺点:1.公网超过10M的文件预览很慢;2.安全:虽然提供水印、防复制参数,但是为了文件的安全,还是需自己开发文件下载IP白名单过滤器;(也提供直接请求文件预览地址接口,可以不暴露文件下载地址)。

例子:技术架构:springboot2+freemark2.26+tk.mybatis2.0.4+pagehelper1.2.12的文件上传下载、分页查询(Spring Boot 集成 MyBatis, 分页插件 PageHelper, 通用 Mapper)

 

本博客包含三个模块:1.永中文件中专站的介绍;2.代码相关技术和开发流程介绍;3.相关pom依赖及配置介绍

代码下载地址:https://download.csdn.net/download/qq_26408545/12339351

代码预览地址:http://www.javakly.com:8080,自2020-04-19,7天内有效:效果如下

 一:永中文件中专站的介绍

 使用3步:1.去官网注册账号,并配置域名信息,获得key官网地址:https://api.yozocloud.cn

 2.根据你得文件下载地址拼接预览地址:2种方式

第一方式:直接根据下载地址和key:拼接文件的预览地址:

如:http://dcsapi.com/?k=1744232&url=http://58.215.166.234/example/doc/doctest.docx

http://永中文件预览网址+?k=(域名对应的用户Key)+&url=(在线文档下载地址) +&isCopy=(是否防复制1是0否,可选) +&watermaerk=(水印文字内容,可选)

3个可选参数:1、watermark:String格式。针对单文档设置水印内容。2、isCopy:Integer格式(0否1是,默认为0。针对单文档设置是否防复制)。3、noCache:Boolean格式。是否强制重新转换(忽略缓存),true为强制重新转换,false为不强制重新转换。

第二种方式:用户通过api调用方式获取预览地址

请求地址:http://api.yozocloud.cn/getPreview?k=123456&url=http://abc.com/123.doc

说明:http://api网址/ getPreview +?k=(域名对应的用户Key)+&url=(在线文档地址) +&isCopy=(是否防复制1是0否,可选) +&watermaerk=(水印文字内容,可选)

获得json : errorcode=0代表请求成功,拿到data.data,可直接通过网址代开;

{ "data":{ "data":"https://p.dcsapi.com/view/preview/xxxxxxxx/" }, "message":"操作成功", "errorcode":0 }  二:代码相关技术和开发流程介绍

 

代码模板参考:https://github.com/abel533/MyBatis-Spring-Boot:Spring Boot 集成 MyBatis, 分页插件 PageHelper, 通用 Mapper 

2.1 tk.mybatis的通用mapper实现逆向工程的生成

1.首先在数据库中建好表。

DROP TABLE IF EXISTS sys_files; CREATE TABLE sys_files ( file_id int(11) NOT NULL AUTO_INCREMENT comment '文件主键', file_name varchar(255) NOT NULL comment '文件名称', file_new_name varchar(255) NOT NULL comment '文件新名字', file_type varchar(500) NOT NULL comment '文件类型', file_url varchar(500) NOT NULL comment '文件下载地址', file_Show_url varchar(255) NOT NULL comment '文件预览地址', create_by varchar(64) default '' comment '创建者', create_time datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '创建时间', update_by varchar(64) default '' comment '更新者', update_time datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '更新时间', PRIMARY KEY (file_id), INDEX(file_name), INDEX(file_type) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 comment '系统文件';

2.然后在pom中增加mybatis和通用mapper的依赖,以及generator的插件,generator配置见3。

org.springframework.boot spring-boot-maven-plugin org.springframework springloaded 1.2.5.RELEASE org.mybatis.generator mybatis-generator-maven-plugin 1.3.2 ${basedir}/src/main/resources/generator/generatorConfig.xml true true mysql mysql-connector-java ${mysql.version} tk.mybatis mapper-generator 1.0.0

3.需要自己在utils中的MyMapper中继承tk.mybatis中的通用模板,添加要逆向生成的表。

package com.javakly.utils; import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.MySqlMapper; public interface MyMapper extends Mapper, MySqlMapper { //TODO //FIXME 特别注意,该接口不能被扫描到,否则会出错 }

 

4.在myeclipse运行mybatis-generator:generate命令(myeclipse自带mvn 前缀)

 

 

 

2.2springboot整合FreeMarker配置

server.port=8080 #context-path第一次请求的地址 server.context-path=/files server.session.timeout=600000 server.tomcat.uri-encoding=UTF-8 server.tomcat.max-threads=800 server.tomcat.min-spare-threads=30 #文件大小 spring.servlet.multipart.max-file-size=100000000 spring.servlet.multipart.max-request-size=100000000 # 启用的application文件 spring.profiles.active=dev # 表示访问该路径时代表请求静态资源,用户可以直接访问该请求路径中的静态资源 spring.mvc.static-path-pattern=/static/** spring.mvc.async.request-timeout=60000 ######################################################## ###FREEMARKER (FreeMarkerAutoConfiguration) ######################################################## spring.freemarker.allow-request-override=false #本机调试时,配置项template_update_delay=0,这样就关闭了模板缓存。注意线上环境要开启缓存 spring.freemarker.cache=false spring.freemarker.settings.template_update_delay=0 spring.freemarker.check-template-location=true spring.freemarker.charset=UTF-8 spring.freemarker.content-type=text/html spring.freemarker.expose-request-attributes=false spring.freemarker.expose-session-attributes=false spring.freemarker.expose-spring-macro-helpers=false spring.freemarker.prefix= #若在freemarker获取request对象,在spring boot 在application.properties可以这么配置 spring.freemarker.request-context-attribute=request #spring.freemarker.settings.*= spring.freemarker.suffix=.ftl #template-loader-path表示所有的模板文件都放在该目录下 spring.freemarker.template-loader-path=classpath\:/templates/ #spring.freemarker.view-names= #whitelistofviewnamesthatcanberesolved #static-locations可以自定义静态资源路径,不过会覆盖springboot默认路径 #在这个最末尾的file:${web.upload-path}之所有要加file:是因为指定的是一个具体的硬盘路径,其他的使用classpath指的是系统环境变量 #spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:${web.upload-path} spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/ spring.freemarker.settings.datetime_format=yyyy-MM-dd #freemarker空值不报异常 spring.freemarker.settings.classic_compatible=true

2​​​​​​.3PageHelper配置和配合通用mapper进行查询

# mybatis 配置 mybatis.type-aliases-package=com.javakly.model mybatis.mapper-locations=classpath:mapper/*.xml # tk.mapper配置 mapper.mappers=com.javakly.utils.MyMapper mapper.not-empty=false mapper.identity=MYSQL # pagehelper 分页插件配置 pagehelper.helperDialect=mysql pagehelper.reasonable=true pagehelper.supportMethodsArguments=true pagehelper.params=count\=countSql

 pageHelper使用2中方式

方式1:mybatis通用查询模式:自己写查询条件

public List getAll(SysFiles sysFiles) { if (sysFiles.getPage() != null && sysFiles.getRows() != null) { PageHelper.startPage(sysFiles.getPage(), sysFiles.getRows()); } Example example = new Example(SysFiles.class); Example.Criteria criteria = example.createCriteria(); if (!StringUtils.isEmpty(sysFiles.getFileName())) { criteria.andLike("file_name", "%" + sysFiles.getFileName() + "%"); } if (!StringUtils.isEmpty(sysFiles.getFileType())) { criteria.andLike("file_type", "%" + sysFiles.getFileType() + "%"); } return sysFilesMapper.selectByExample(example); }

方式2:通过Weekend包装查询,并通过注解映射字段写查询条件(就是和类名::获取方法表达式)

public List getAllByWeekend(SysFiles sysFiles) { if (sysFiles.getPage() != null && sysFiles.getRows() != null) { PageHelper.startPage(sysFiles.getPage(), sysFiles.getRows()); } Weekend weekend = Weekend.of(SysFiles.class); WeekendCriteria criteria = weekend.weekendCriteria(); if (!StringUtils.isEmpty(sysFiles.getFileName())) { criteria.andLike(SysFiles::getFileName, "%" + sysFiles.getFileName() + "%"); } if (!StringUtils.isEmpty(sysFiles.getFileType())) { criteria.andLike(SysFiles::getFileType, "%" + sysFiles.getFileType() + "%"); } return sysFilesMapper.selectByExample(weekend); }  三、本文的pom依赖| MyBatis和通用Mapper及PageHelper jar版本(2020-4-19都是接近最新的版本依赖) 4.0.0 org.springframework.boot spring-boot-starter-parent 2.2.6.RELEASE com.javakly officeOnlineYZ 0.0.1-SNAPSHOT officeOnlineYZ Demo project for Spring Boot 1.8 2.1.1 2.0.4 1.2.12 1.1.10 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-jdbc org.springframework.boot spring-boot-starter-aop org.springframework.boot spring-boot-starter-test org.springframework.boot spring-boot-starter-actuator org.springframework.boot spring-boot-devtools true org.springframework.boot spring-boot-configuration-processor true org.springframework.boot spring-boot-starter-freemarker com.fasterxml.jackson.core jackson-core com.fasterxml.jackson.core jackson-databind com.fasterxml.jackson.datatype jackson-datatype-joda com.fasterxml.jackson.module jackson-module-parameter-names org.mybatis.spring.boot mybatis-spring-boot-starter ${mybatis.spring.version} tk.mybatis mapper-spring-boot-starter ${mapper.starter.version} com.github.pagehelper pagehelper-spring-boot-starter ${pagehelper.starter.version} org.mybatis.spring.boot mybatis-spring-boot-starter mysql mysql-connector-java com.alibaba druid-spring-boot-starter ${druid.version} org.springframework.boot spring-boot-maven-plugin org.springframework springloaded 1.2.5.RELEASE org.mybatis.generator mybatis-generator-maven-plugin 1.3.2 ${basedir}/src/main/resources/generator/generatorConfig.xml true true mysql mysql-connector-java ${mysql.version} tk.mybatis mapper-generator 1.0.0

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3