node 实现文件下载,web打开迅雷下载文件

article/2025/9/10 19:50:35

node实现文件下载

方法一:

const express = require('express');
const router = express.Router();
const fs = require('fs');
const path = require('path');
const {errorMsg} = require("../../util/apiUtils");router.get('/:fileName', async (req, res) => {const filePath = path.resolve(__dirname, `./../../public/upload/${req.params.fileName}`)const fileExit = exitsFile(filePath);if (fileExit) {res.download(filePath, req.params.fileName);} else {errorMsg('文件不存在');}
})/*** 判断文件是否存在* @param absPath 文件的路径* @returns {Promise<*>}*/
async function exitsFile(absPath) {const stats = await fs.statSync(absPath);return stats.isFile()
}module.exports = router;

方法二

const express = require('express');
const router = express.Router();
const fs = require('fs');
const path = require('path');
const {errorMsg} = require("../../util/apiUtils");router.get('/:fileName', async (req, res) => {const filePath = path.resolve(__dirname, `./../../public/upload/${req.params.fileName}`)const fileExit = exitsFile(filePath);if (fileExit) {fs.readFile(filePath,(err, data) => {res.send(data);res.end();});} else {errorMsg('文件不存在');}
})/*** 判断文件是否存在* @param absPath 文件的路径* @returns {Promise<*>}*/
async function exitsFile(absPath) {const stats = await fs.statSync(absPath);return stats.isFile()
}module.exports = router;

效果:
如果是错误的文件路径如下:
在这里插入图片描述
如果是正确的文件路径可以直接打开下载的弹框。

前端可以直接实现迅雷下载

原理

前提是你本地要安装了迅雷才会打开迅雷下载。

迅雷下载协议
把完整的下载地址得到
AA地址ZZ
base64编码 使用自带的方法btoa()
thunder://base64编码

完整案列如下:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><a resrole="thunder" href="/api/download/1608966035138-6mgmkl.jpg">下载</a><!-- 迅雷下载协议把完整的下载地址得到AA地址ZZbase64编码thunder://base64编码--><script>const a = document.querySelector("a[resrole=thunder]");let thunderLink = `AA${a.href}ZZ`;thunderLink = btoa(thunderLink);thunderLink = "thunder://" + thunderLink;a.href = thunderLink;</script></body>
</html>

断点续传 下载的原理

关键是在于
在这里插入图片描述


http://chatgpt.dhexx.cn/article/5BjixLdk.shtml

相关文章

迅雷有linux版本吗,迅雷 - Linux Wiki

出自Linux Wiki 提示:此文已超过 7 年(2853 天)未更新,如发现内容过时或有误,欢迎改进:) 虽然迅雷至今仍未开发出Linux版本,不过借助 Wine 运行的迅雷已能实现其基本的功能。 迅雷离线 目前Linux下最佳使用迅雷方案就是迅雷离线配合Linux下的下载工具aria2 、wget,速度可达…

用迅雷打开php文件,迅雷下的php文件怎么打开啊?

simith666的回答&#xff1a; PHP文件是在服务器端执行的脚本文件&#xff0c;用不同文本编辑器打开即可。步骤如下&#xff1a; 1、首先找到php文件所在文件夹&#xff1a; 2、右键单击需要打开的php文件&#xff0c;弹出右键菜单中选择打开方式&#xff1a; 3、在打开的方式的…

核主成分分析方法(KPCA原理篇)

&#xff08;1&#xff09;方法的基本思想是&#xff1a;对样本进行非线性变换&#xff0c;在变换空间进行主成分分析来实现在原空间的非线性主成分分析&#xff1b; &#xff08;2&#xff09;算法步骤&#xff1a; ① 通过核函数计算矩阵&#xff0c;其元素为。其中和为原空…

主成分分析法PCA(一):算法原理

一&#xff1a;算法概述&#xff1a; 主成分分析法&#xff0c;principle component analysis&#xff0c;PCA。也称主分量分析&#xff0c;是一种大样本&#xff0c;多变量数据间内在关系的一种方法。这种方法利用降维的思想&#xff0c;通过向量变换的方法将众多线性相关指标…

主成分分析的基本原理

目录 什么是主成分分析&#xff1f; 主成分分析的步骤 根据什么选择主成分&#xff1f; 怎样解释主成分&#xff1f; 特征值、方差解释率及碎石图 载荷系数与共同度 什么是主成分分析&#xff1f; 主成分的概念由Karl Pearson在1901年提出的。他是考察多个 变量间相关性…

PCA主成分分析原理理解学习(源于b站某视频)

Principal Component Analysis 主成分分析 地址&#xff1a;https://www.bilibili.com/video/BV1E5411E71z?spm_id_from333.337.search-card.all.click 假设要保存二维的信息&#xff0c;由于降维考虑&#xff0c;期望只存储一个维度的信息&#xff08;为了减少存储的信息量&a…

主成分分析(PCA)原理及过程

首先&#xff0c;感谢一下这篇文章的作者&#xff1a;主成分分析原理及过程 PCA原理及过程 在机器学习中&#xff0c;对于数据维度过多问题&#xff0c;提出了一种降维算法叫做PCA算法。具体的降维&#xff1a;例如评估一个国家的GDP水平&#xff0c;需要考量到人口、收入、人…

PCA主成分分析原理的三种角度的理解

主成分分析算是降维算法中的一个经典算法了。网上也有很多博客介绍了这个算法。这篇文章从三个不同的角度&#xff0c;对PCA方法做了详细的分析&#xff0c;不同的角度进行推导最后得到的也都是同一个结果&#xff0c;推导过程需要些数学基础&#xff0c;但总体是非常好理解的。…

主成分分析(PCA)原理总结

主成分分析&#xff08;Principal components analysis&#xff0c;以下简称PCA&#xff09;是最重要的降维方法之一。在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用。一般我们提到降维最容易想到的算法就是PCA&#xff0c;下面我们就对PCA的原理做一个总结。 1. PCA…

PCA主成分分析原理及分析实践详细介绍

自己的博客在Github上&#xff0c;访问不多。这篇文章竟然被别人发了出来&#xff0c;还是贴到CSDN上&#xff0c;更方便检索吧。 原文&#xff1a;<http://blog.genesino.com/2016/10/PCA/> This is generated by R knitr, please check https://github.com/Tong-Chen/…

PCA(主成分分析)原理详解

PCA概念 PCA(Principal Component Analysis)&#xff0c;即主成分分析方法&#xff0c;是一种使用最广泛的数据降维算法。PCA的主要思想是将n维特征映射到k维上&#xff0c;这k维是全新的正交特征也被称为主成分&#xff0c;是在原有n维特征的基础上重新构造出来的k维特征。PC…

python主成分分析代码_PCA主成分分析 原理讲解 python代码实现

1. 用途&#xff1a; 通俗来说&#xff1a; 考察一个人的智力情况&#xff0c;就直接看数学成绩就行(存在&#xff1a;数学、语文、英语成绩) 。就是找出一个最主要的特征&#xff0c;然后进行分析。 数据压缩 &#xff08;Data Compression&#xff09; &#xff0c;将高维数…

主成分分析法原理与MATLAB实现

1&#xff1a;主成分分析原理&#xff1a; 主成分分析法是利用降维的思想&#xff0c;把多指标转化为少数几个综合指标&#xff08;即主成分&#xff09;&#xff0c;其中每个主成分都能够反映原始变量的大部分信息&#xff0c;且所含信息互不重复。这种方法在引进多方面变量的…

主成分分析(PCA)原理及应用

在进行统计学分析中往往面临着比较难以抉择的权衡。以农学研究为例&#xff0c;在实验设计时&#xff0c;考虑到研究结论更能反应作物真实状态下的农艺性状&#xff0c;研究人员会尽可能的纳入较多的指标&#xff0c;但是&#xff0c;随着而来的是铺天盖地的数据让人难以下手&a…

PCA主成分分析原理与基础知识

笔记的主要内容是 PCA&#xff08;主成分分析&#xff09; 原理和基本知识&#xff0c;相关数学原理和核心概念。 什么是PCA分析&#xff1f; 主成分分析(PCA, principal component analysis)是一种数学降维方法,利用正交变换把一系列可能线性相关的变量转换为一组线性不相关的…

【机器学习】五、主成分分析原理

主成分分析(Principal Component Analysis)&#xff0c;简称PCA&#xff0c;是机器学习中一种常用来进行数据降维操作的方法。PCA通过矩阵变换&#xff0c;将高维数据变换到低维。本文主要分享PCA的数学原理&#xff0c;帮助大家了解PCA降维的理论基础。码字不易&#xff0c;喜…

主成分分析原理详解

本博客前三节参考https://blog.csdn.net/program_developer/article/details/80632779 至于协方差矩阵的公式推导参考 http://blog.codinglabs.org/articles/pca-tutorial.html 1、背景 在许多领域的研究与应用中&#xff0c;通常需要对含有多个变量的数据进行观测&#xff0…

主成分分析原理及Python实现

主成分分析&#xff08;Principal Components Analysis, PCA&#xff09;是一种常用的数据分析手段&#xff0c;是图像处理过程中常用到的降维方法。对于一组不同维度之间可能存在线性相关关系的数据&#xff0c;PCA能够把这组数据通过正交变换变成各个维度之间线性无关的数据&…

主成分分析原理以及SPSS和Python实现

目录 [ 0 ] 一句话定义[ 1 ] 使用目的和使用条件[ 2 ] 基本思想和直观理解[ 3 ] 具体计算步骤[ 4 ] 求各个成分的累计贡献率[ 5 ] 主成分分析的SPSS和Python实现SPSS实现相关设置结果分析 Python实现 [ 6 ] 总结 [ 0 ] 一句话定义 主成分分析(principal component analysis,PCA…

主成分分析原理

文章目录 一、主成分操作步骤二、spss里面的设置三、一些概念的解释 一、主成分操作步骤 1、为消除量纲的影响&#xff0c;先对数据进行标准化处理&#xff1b; 2、计算相关系数&#xff1a;一般认为各变量之间的相关系数大于0.3较好&#xff1b; 3、KMO检验和Barlett&#…