位置: 编程技术 - 正文

浅析Node.js实现HTTP文件下载(node.js gui)

编辑:rootadmin

推荐整理分享浅析Node.js实现HTTP文件下载(node.js gui),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejs实战教程,node js教程,node.js javascript,nodejs实战教程,node.js javascript,node.js javascript,node js教程,node js教程,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

HTTP实现文件下载时,只要在服务器设置好相关响应头,并使用二进制传输文件数据即可,而客户端(浏览器)会根据响应头接收文件数据。而在Node.js中,设置好响应头后,读取文件流,再使用“.pipe()”方法将流转接到响应对象Response就可以实现一个简单的文件下载服务器。

1. 文件下载介绍

HTTP基于请求头和响应头实现状态交互,在得到服务器正确响应状态后,而客户端首先会解析响应头,并根据响应头来接收和展示数据(响应体)。对于文件下载来说,其实现过程如下:

1.客户端发起文件资源请求

2.服务器查找对应文件,并设置”Content-Type”、”Content-Disposition”等响应头,分别用于表示文件的”MIME”类型及文件描述

3.客户端根据服务器返回的响应头解析和接收文件数据

需要设置的响应头

设置文件下载响应头时,除了常用的HTTP响应头外,比较重要是还要设置以下两个响应头:

在上面的设置中,”Content-Type: application/octet-stream”告诉浏览器这是一个二进制文件,”Content-Disposition”告诉浏览器这是一个需要下载的附件并告诉浏览器默认的文件名。如果不添加”Content-Disposition”响应头,浏览器可能会下载或显示文件内容,不同浏览器的处理有所不同。

浅析Node.js实现HTTP文件下载(node.js gui)

2. Node.js文件下载服务器实现

接下来我们基于Express 框架实现一个简单文件下载服务器,在这个服务器中主要包括两个功能:服务器文件的浏览、文件的下载。

2.1 添加路由

创建Express应用后,添加如下两个路由:

上面的添加的两个路由分别用于:显示服务器文件、实现文件下载。

2.2 显示服务器文件

实现服务器文件的显示,要通过”fs”模块读取文件目录并进行文件/目录检查等。还需要使用”path”模块处理文件路径。首先引入这两个模块:

显示服务器文件实现代码如下:

上面代码中,读取目录后通过视图文件”files.ejs”显示可下载文件列表。其代码如下:

2.3 实现文件下载

实现文件下载时,可以先读取文件到一个”Buffer”中,再通过”res.send()”或”res.end()”方法发送文件数据,也可以基于流(”Stream”)实现文件数据的发送。使用”Stream”实现文件下载时,可以使用”fs.createReadStream()”方法创建一个可读流,而响应对象Response是一个可写流。这样,只需要通过”.pipe()”方法将文件流转接到Response响应流中即可。

文件下载实现代码如下:

总结

标签: node.js gui

本文链接地址:https://www.jiuchutong.com/biancheng/370763.html 转载请保留说明!

上一篇:nodejs如何获取时间戳与时间差(node 获取当前时间)

下一篇:angularJS 如何读写缓冲的方法(推荐)(angular.js)

  • 固定资产处置损益怎么算
  • 增值税专用发票丢失了要怎么处理
  • 运输费劳务是否可以扣除
  • 增值税普票税额怎么算出来的
  • 资产负债表中没有实收资本
  • 工会经费每月必须60块钱
  • 什么时候库存商品什么时候主营业务收入
  • 外购的产品用于投资
  • 收到0税率发票是否可以给对方开6税率发票
  • 应纳税所得额超过36000至144000
  • 总产值和主营业务收入
  • 税务局查账需要几天
  • 车辆购置税退税流程
  • 股权转让印花税税目怎么填
  • 收到认缴实收资本怎么做账务处理?
  • 进口货物的代理报关服务费计入
  • 用友u8怎样查询上个月凭证
  • 资产拍卖税费谁承担
  • 单位预付卡
  • 买商铺返租金之套路
  • 哪些罚款不能进行所得税税前扣除?
  • 子公司员工向母公司申请党员
  • 税收缴款书怎么做凭证
  • 当月发的奖金怎么扣个税
  • 开票软件维护费计入什么科目
  • 企业所得税期间费用明细表
  • 现金预算在企业财务管理中是何地位
  • 资产置换税务处理案例
  • linux中!
  • 并购动因理论有什么
  • 留抵税额抵扣会计分录
  • 未分配利润转增股本交印花税
  • 对外支付需要缴纳增值税吗
  • 公司制作一个app要多少钱
  • 桔梗的功效与作用吃法
  • php入门例子
  • 公司给员工发放的福利都要扣个税吗
  • 固定资产非正常损失进项税
  • js异步解决方案
  • 使用php连接数据的方法
  • 离职之后个税
  • 失业保险金退回告知书
  • 应收票据应付票据合并抵消吗
  • 预收账款多好还是少好
  • phpcms怎么样
  • 去参加博览会的英文
  • 企业研发费用资本化相关公司
  • 当月销售次月开票怎么做账
  • 民办非企业收到政府拨款分录
  • 员工报销货款会计分录怎么写
  • 视同销售包括哪些行为?
  • 应交增值税减免税额在借方
  • 工商年报和税务年报有什么区别
  • 上级补助收入科目
  • 政府专项基金属于什么类
  • 三项费用合计包括哪些
  • 公司基本账户提现规定
  • 劳务公司发放农民工工资要交个税吗
  • 房地产企业收到政府补助
  • 营业外收入适用的会计准则
  • 微信和支付宝的区别
  • 生产费用明细账
  • 够拼了 安装Win8.1过程中出现预约Win10升级提示
  • windows延缓写入失败怎么修复
  • win8 恢复
  • windows z
  • mac屏幕共享软件
  • win10mobile升级顾问
  • win10系统怎么清理电脑垃圾
  • centos7取消挂载硬盘
  • win8自带驱动吗
  • 日常办公常用的批处理脚本
  • windows7打开命令提示符
  • 网络自定义怎么打开
  • arp绑定用户直接上网是什么意思
  • nodejs处理excel
  • 山西国家税务网官网
  • 重庆税务自助取票地点
  • 调研基本情况介绍范文
  • 补交以前年度城建税费怎么做账
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设