热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

blob下载文件与原文件大小不同

用vue作为前端、node.js作为后端开发一个网站,有一个需求是在前端进行文件下载,文件类型包括pdf、word、exe等,文件的储存位置在后端的路径中。

用vue作为前端、node.js作为后端开发一个网站,有一个需求是在前端进行文件下载,文件类型包括pdf、word、exe等,文件的储存位置在后端的路径中。



后端代码:

1
res.download(file_path)

前端代码:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
axios.get(url,{responseType:'blob'}).then(function(res){

   if (res.data){

      filename = 'filename';

      var blob = new Blob([res.data],{type:""});

      console.log('sizzze',res.data.length,blob.size);

     

      if (window.navigator.msSaveOrOpenBlob){

        navigator.msSaveOrBlob(blob, filename);

      }else{

        var link = document.createElement('a');

        link.href = window.URL.createObjectURL(blob);

        link.download = filename;

        document.body.appendChild(link);

        var evt = document.createEvent("MouseEvents");

        evt.initEvent("click", false, false);

        link.dispatchEvent(evt);

 

        document.body.removeChild(link);

      }

  })

但是这样下载下来的文件和原始文件的大小是不同的,而且总是比原文件大一些。

1
console.log('sizzze',res.data.length,blob.size)

用这句话观察了一下后端传回的数据大小和生成的blob的数据大小,已经不同了。
才疏学浅,实在不懂,请大神们帮忙解答一下,多谢了!


   



推荐阅读
author-avatar
燕门雪_346
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有