GTD*_*Dev 7 csv json download node.js angularjs
我使用angularJS前端框架和nodejs/express作为后端服务器来发送和接收JSON.后端向前端发送了一个大的JSON对象,我想知道是否可以从CSV格式的前端下载JSON对象.
数据存储为范围变量$scope.data中的json:在角度控制器中.然后我将数据转换为变量中CSV格式的字符串$scope.CSVdata.如何从客户端浏览器下载CSVdata?
我知道nodejs可以设置为以CSV格式发送文件,但保持后端干净的JSON api会很不错.
参考这篇文章,我一起快速演示如何使用AngularJS完成这项工作:
我已将引用的Base64代码包装在服务中,并以下列方式使用它:
$scope.downloadCSV = function() {
var data = Base64.encode($scope.CSVData);
window.location.href = "data:text/csv;base64," + data;
};
Run Code Online (Sandbox Code Playgroud)
然而,正如评论中所提到的,这种方法存在一些缺点.我已经从维基百科页面上提取了一些关于这个主题的要点.前往那里获取完整列表.
- 数据URI不是单独缓存其包含的文档(例如CSS或HTML文件),因此每次重新下载包含文档时都会下载编码数据.
- Internet Explorer 8将数据URI限制为最大长度为32 KB.(Internet Explorer 9没有此限制)
- 在IE 8和9中,数据URI只能用于图像,但不能用于导航或JavaScript生成的文件下载.[7]
- Base64编码的数据URI的大小是其二进制等值的1/3.(但是,如果HTTP服务器使用gzip压缩响应,则此开销减少到2-3%)
- 数据URI不像普通链接文件那样携带文件名.保存时,通常使用指定MIME类型的默认文件名.
- [...]
| 归档时间: |
|
| 查看次数: |
4290 次 |
| 最近记录: |