Vue前后端页面下载功能实现演示,Python+flask提供后台下载服务
创始人
2024-05-10 16:21:07
0

Vue前后端页面下载功能实现

  • 效果图
  • 后台下载服务实现
  • 前台简单实现

[ 文章推荐 ]
Python 地图篇 - 使用 pyecharts 绘制世界地图、中国地图、省级地图、市级地图实例详解

效果图

首先看下演示效果。
点文档的话是 html 文档,跳转的预览,点下载的话是压缩包直接就进行下载了。
请添加图片描述
文档和压缩包就是我本地文件。
在这里插入图片描述

后台下载服务实现

后台这块,我这里使用 python+flask 实现。
root 指定个下载目录,后面的路径会在这个基础上进行查找。

# -*- coding:utf-8 -*-
import flask
import socketapp = flask.Flask(__name__)@app.route('/downloads/', methods=['GET', 'POST'])
def downloads(path):'''根据指定路径提供下载服务'''# 指定可供下载的大目录root = "D:\downloads"# as_attachment参数设置为False,会展示预览,例如图片或pdfreturn flask.send_from_directory(root, path, as_attachment=False)if __name__ == '__main__':# 获取ip地址s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)s.connect(('8.8.8.8',80))host_ip = s.getsockname()[0]s.close()host_port = 5003app.run(host = host_ip, port = host_port)

启动后就可以看到服务地址了。
这里有个 utf-8 的报错,可以不用管,就是计算机名是中文导致的。
想了解的话可以看这篇文章:
计算机中文名导致的 flask、socket 服务报错问题处理
在这里插入图片描述
as_attachment 参数的值设置为 False 的话,
图片、pdf 等类型的文件就可以支持预览了,其它类型的文件还是直接进行下载。
True 的话,全部类型都是直接下载。
浏览器地址栏输入链接就可以看效果。
这个是预览效果。
在这里插入图片描述
这个是直接下载效果。
在这里插入图片描述

前台简单实现

最简单的实现方法是用两个链接分别包含两个按钮即可。
如果想要做下载进度条的话,可以考虑用 axios、ajax 实现。

文档

下载

然后就能实现这个效果啦。
如果喜欢这个 UE 效果的可以看我的这篇文章:
移动端也能兼容的 web 页面制作1MDBootstrap 演示 Demo 运行演示
请添加图片描述
喜欢的点个赞❤吧!

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...