博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实现HTTP文件下载
阅读量:7071 次
发布时间:2019-06-28

本文共 773 字,大约阅读时间需要 2 分钟。

【原文:http://www.jb51.net/article/89958.htm】

 

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

1. 文件下载介绍

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

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

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

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

需要设置的响应头

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

1
2
Content-Type: application/octet-stream
Content-Disposition: attachment; filename=MyFileName.ext

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

转载于:https://www.cnblogs.com/kimbosung/p/6929070.html

你可能感兴趣的文章
【python】-- 面向对象引子、概念
查看>>
Linux下Samba服务配置笔记
查看>>
爬虫学习路线
查看>>
前端总结·基础篇·CSS(三)补充
查看>>
webstorm 快捷键
查看>>
阅读作业总结——《移山之道》
查看>>
缺陷报告的重要组成
查看>>
017_常用API_String类,StringBuffer类和基本数据类型对象包装类
查看>>
EDT改成CST
查看>>
自定义 vim
查看>>
perl 遍历指定目录下的所有文件,替换指定文本内容,返回受影响的文件路径...
查看>>
【转载】CentOS下查看电脑硬件设备属性命令
查看>>
鼠标悬停事件-----提示信息
查看>>
Learning English
查看>>
微博传播数量和传播深度的预测--基于pyspark和某个回归算法
查看>>
cp命令覆盖文件时不用按Y来确认的方法
查看>>
Tomcat优化
查看>>
【开源专访】Sea.js创始人玉伯的前端开发之路
查看>>
前台实现下载xml功能
查看>>
运营商 WLAN
查看>>