前端下载普通文件与二进制流文件
前端下载普通文件与二进制流文件前端下载文件通常会遇到这两种情况
文件上传到资源服务器,后端只保存了文件地址,前端拿到后端返回的文件地址直接下载。
文件就存在后端服务器上(通常是临时根据前端参数动态生成,用完就删),后端读取文件后向前端返回文件的二进制流。
下面以下载 excel 文件为例,分别模拟这是这两种情况。
通过文件地址直接下载新建一个项目,在项目中新建一个空的文件夹 service 模拟一个服务,在文件夹内新建一个 test.xlsx,然后在根目录上新建一个 index.html 模拟前端。
安装 serve 用来启动静态资源服务器。
yarn global add serve
进入 service 目录,启动服务
cd serviceserve -s
此时在页面中放置一个 a 标签,并写上 download 属性,在浏览器中打开点击下载。
这种相当于一个 get 请求,浏览器直接访问该静态资源地址,download 属性告诉这个浏览器这个 a 标签不是打开页面预览而是直接下载。
这与通常在实际项目中通过 ajax 请求接口无关,只需要按照请求,因为后端返回的只是 ...