土豪选择:

如果不缺钱可以直接使用第三方预览收费的:
这里推荐给大家:
网址:https://view.xdocin.com/

使用起来也非常的简单,只需要做一个地址拼接就可以使用
用法:(这里使用vue项目示范)
在页面上展示:

<template><div class="CorrMethod"><!-- 主体 --><div class="main"><h4>文件:{{ crossData.oldfilename }}</h4><div class="operation" v-if="showDownload"><el-button type="text" @click="downloadFile">下载</el-button></div><!-- 这里可以使用 ifname标签将word文档展示在当前页面上(不支持修改) --><iframe :src="preview" frameborder="0" class="preview"> </iframe></div></div>
</template>
<script>
import { getAllCrossEnvs } from "../../api/crossMethod";
export default {name: "CorrMethod",data() {return {// 建筑结构structure: [],// 一级腐蚀环境type: "",// 二级腐蚀环境envs2: [],selectVal: {env2: "",struc: "",},// 文档数据crossData: [],// 预览路径preview: "",// 下载按钮showDownload: false,};},created() {this.initData();this.initStructure();},methods: {// 获取全局数据initData() {if (JSON.parse(window.sessionStorage.getItem("searchResult"))) {const data = JSON.parse(window.sessionStorage.getItem("searchResult"));this.type = data.land;this.initEnvs2();} else {this.$router.push("/mainCon");}},// 获取二级腐蚀环境initEnvs2() {getAllCrossEnvs(this.type).then((res) => {if (res) {this.envs2 = res;}});},initStructure() {getAllStructure().then((res) => {if (res) {this.structure = res;}});},searchHandler(type) {if (type === "method") {getMethod(this.type, this.selectVal.env2, this.selectVal.struc).then((res) => {this.crossData = res.obj[0];let url ="https://view.xdocin.com/view?src=" +encodeURIComponent(this.crossData.fileurl); // 这里的 fileurl就是后端返回的路径this.preview = url;this.showDownload = true;});}},// 下载文件downloadFile() {window.open(this.crossData.fileurl);},},
};
</script><style scoped>
.sel_item {margin-right: 10px;
}
.operation {float: right;margin-right: 40px;
}
.preview {width: 87%;height: 500px;padding: 30px;box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04);background-color: #e9e9eb;
}
</style>

这个有试用期,到期就会收费,收费情况 大家可以加群资讯

作为一个穷鬼,我肯定不会为了这个花钱的

那么接下来是穷鬼的做法:
这里使用的是一个开源的项目叫做kkFileView
推荐部署在Linux云服务器上,阿里双十一可以白嫖的,腾讯云新用户活动50一年,贼香,哈哈
我这里呢使用的docker部署的方式,非常简单只需要两个指令就可以,并且这也是官方推荐的方法

安装docker(交给后端去部署)

如果之前安装过旧版本的Docker,可以使用下面命令卸载:

yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine \docker-ce

安装yum工具

yum install -y yum-utils \device-mapper-persistent-data \lvm2 --skip-broken

然后更新本地镜像源:

# 设置docker镜像源
yum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repoyum makecache fast

输入安装命令:

yum install -y docker-ce

注意:这里因为docker会用到各种端口,在docker中部署一些服务的时候一定要先打开对应的端口,否则会报错

通过命令启动docker:

systemctl start docker  # 启动docker服务systemctl status docker # 查看docker状态systemctl stop docker  # 停止docker服务systemctl restart docker  # 重启docker服务

查看docker版本命令:

docker -v

配置镜像加速

docker官方镜像仓库网速较差,我们需要设置国内镜像服务:

参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

至此docker部署就完成了

部署kkFileView(交给后端)

官方参考文档:https://kkfileview.keking.cn/zh-cn/docs/production.html

我这里是部署在docker上的,可以考虑直接部署

首先这个服务默认是跑在8012端口的,先在云服务器打开8012端口

  1. 环境要求
    Java: 1.8+
    OpenOffice或LiberOffice(Windows下已内置,CentOS或Ubuntu下会自动下载安装,MacOS下需要自行安装)

拉取镜像:

docker pull keking/kkfileview

运行kkFileView

docker run -it -p 8012:8012 keking/kkfileview

完成,可以使用docker命令查看运行情况

docker ps -a

最后去访问一下:

显示这个页面表示成功

接下来可以使用了

使用kkFileView (前端)

提示kkFileView需要使用js-base64

文档地址:https://www.npmjs.com/package/js-base64

# 在项目中安装 js-base64
npm install --save js-base64

在项目中引入:

import { encode } from 'js-base64';

我先面的项目中已经引入了这个包

<template><div class="CorrMethod"><div class="top"><el-selectclass="sel_item"v-model="selectVal.struc"placeholder="建筑环境"><el-optionv-for="item in structure":key="item":label="item":value="item"></el-option></el-select><el-selectclass="sel_item"v-model="selectVal.env2"placeholder="腐蚀环境(二级)"><el-optionv-for="item in envs2":key="item":label="item":value="item"></el-option></el-select><el-buttonclass="search_btn"type="primary"@click="searchHandler('method')">查询方法</el-button><el-buttonclass="search_btn"type="primary"@click="searchHandler('case')">查询案例</el-button><el-buttonclass="search_btn"type="primary"@click="searchHandler('standard')">查询标准</el-button></div><!-- 主体 --><div class="main"><h4>文件:{{ crossData.oldfilename }}</h4><div class="operation" v-if="showDownload"><el-button type="text" @click="downloadFile">下载</el-button></div><iframe :src="preview" frameborder="0" class="preview"> </iframe></div></div>
</template><script>
import {getAllCrossEnvs,getAllStructure,getMethod,getCase,getStandard,
} from "../../api/crossMethod";
import { encode } from "js-base64";
export default {name: "CorrMethod",data() {return {// 文档数据crossData: [],// 预览路径preview: "",// 下载按钮showDownload: false,};},created() {},methods: {searchHandler(type) {if (type === "method") {getMethod(this.type, this.selectVal.env2, this.selectVal.struc).then((res) => {this.crossData = res.obj[0];// 这里就是那个网址let url ="http://192.168.10.103:8012/onlinePreview?url=" +encodeURIComponent(encode(this.crossData.fileurl));this.preview = url;this.showDownload = true;});}},// 下载文件downloadFile() {window.open(this.crossData.fileurl);},},
};
</script><style scoped>
.sel_item {margin-right: 10px;
}
.operation {float: right;margin-right: 40px;
}
.preview {width: 87%;height: 500px;padding: 30px;box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04);background-color: #e9e9eb;
}
</style>

白嫖就是香:(效果展示)

vue中后端返回word文件下载地址,实现文件预览功能相关推荐

  1. vue中后端返回图片流,前端渲染方法

    vue中后端返回图片流,前端渲染方法 前端登录经常用到图形验证码,后端接口返回的是图片数据流,如下图返回图片流这样 效果图如下: 首先封装接口api和uuid[就是一个随机数,防止重复] //获取图形 ...

  2. Vue新手:实现文件预览功能的前端

    预览文件的前端 省略点击按钮点击触发showdialogview()方法的代码 第一种方法 先在template中加入一个input框,绑定一个字符串类型的变量 写showdialogview()方法 ...

  3. 如何在vue中实现文件预览功能

    文件流 如何将各种文件的文件流(blob)转化为线上可以直接预览的数据,这里简单介绍四种不同类型的文件预览.分别是pdf,docx,xlsx,jpg/png/jpeg等.有一个事情是需要重点注意的,文 ...

  4. Vue中实现pdf文件预览功能

    写在前面: 实现的功能就是点击预览按钮,弹出对话框在线预览pdf文件 实现此功能的前提是需要在Vue项目中安装组件vue-pdf, 在终端命令行输入运行如下语句: npm install --save ...

  5. Vue中使用el-popover实现悬浮弹窗显示图片预览

    场景 数据库中存储照片的磁盘路径,需要鼠标在el-table的路径字段上悬浮时弹窗进行 图片网络URL的预览,所以需要在悬浮后对图片路径进行磁盘路径和网络URL映射路径 的转换. 注: 博客: htt ...

  6. Vue中通过el-upload组件实现上传前预览本地图片

    1.实现效果如下图所示 用户选择本地待上传的图片,选择成功后,上传组件隐藏,呈现本地预览组件,单击图片并实现图片的放大呈现 2.template(相当于html)部分的代码如下 代码实现逻辑: 在el ...

  7. 微信小程序文件下载预览 真机调试可以 但直接预览打不开 小程序文件下载 小程序文件预览

    只要确保真机调试和调试状态下可以下载并预览文件即可,上线后即可预览成功 文件预览代码: 小程序预览的前提需要先调用下载接口,下方代码未处理下载和预览失败事件哟,此处我使用的是uniapp框架,如果使用 ...

  8. vue 如何解析原生html,VUE渲染后端返回含有script标签的html字符串示例

    VUE渲染后端返回含有script标签的html字符串示例 发布时间:2020-09-14 23:37:52 来源:脚本之家 阅读:207 作者:冷幽悠 在接入支付宝支付模块的时候,支支返回的是一个f ...

  9. 前端Vue中获取本机ip地址

    前端Vue中获取本机ip地址 1.打开谷歌浏览器,地址栏输入chrome://flags,进入. 2.搜索Anonymize local IPs exposed by WebRTC,将其设置为Disa ...

最新文章

  1. mysql2005备份_创建完整数据库备份 - SQL Server | Microsoft Docs
  2. linux中根目录下各个目录的作用
  3. Spring杂谈 | 什么是ObjectFactory?什么是ObjectProvider?
  4. 修改 堆栈大小 普适性方案总结 (跨平台 windows linux 栈设置大小)
  5. 信息论-Shannon entropy-Kullback-Leibler (KL) divergence-cross-entropy
  6. [1.1]XMI 与UML结合开发企业应用中业务模型
  7. Fiori Fundamentals和SAP UI5 Web Components
  8. 【Python】[02]初识Python
  9. 那天我去逛街,发现连大编程语言都摆起地摊了……
  10. 知识竞赛现场管理系统安装配置及使用疑难问题汇编
  11. 2020MathorCup数学建模比赛A题D题思路
  12. 解决开发工具文件夹拖不进图片文件
  13. 安利FeHelper
  14. html中的em的使用方法,css布局的em的使用方法
  15. 正面管教之PHP_2017.04.08 三正记录(正面管教课堂之出生顺序及PHP)
  16. Chromebook + Crouton
  17. 虚拟机双硬盘安装ubuntu固态+机械
  18. Windows 共享文件访问日志
  19. 大学各专业计算机专属表情包,是不是每个专业都有专属表情包?
  20. ShaderForge 之霓虹旋涡

热门文章

  1. 入手评测 雷神911zero 怎么样
  2. python交通流运行模拟_绘制交通流基本图
  3. 化合物相似性搜索_使用MolAICal进行配体相似性比较或搜索的操作教程
  4. 吃鱼还是吃肉,国家给出了 8 岁男宝宝的标准身高为 130 厘米、标准体重 27 公斤;8 岁女宝宝的标准身高为 129 厘米、标准体重为 25 公斤。 现在你要根据小宝宝的身高体重,给出补充营养
  5. ChatGPT推荐的开源项目,到底靠不靠谱?
  6. startActivity时报错Calling startActivity() from outside of an Activity context requires the FLAG_ACTIV
  7. html-canvas
  8. 华为如何走出数据沼泽丨中国数度系列报道之一
  9. Django边学边记--状态保持(cookie和session)
  10. java.lang.ClassNotFoundException org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEnd