打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
求助:有一个url链接的音频文件,直接打开是直接播放,现在我需要写一个接口,提供下载该wav文件,怎么做?

fs 模块貌似只能读取本地上的文件。。求大神们帮忙有什么好的办法没有?

16 回复

简单来说就是实现下载URL文件的功能。。。

我之前认为的方法:

var dstUrl="http://10.0.2.246/monitor/2014-06-14/OUT7010-20140614-1402752806.1466.wav“;        var input = fs.createReadStream(dstUrl);        var result='';        input.on('data',function(data){            result+=data;        });        input.on('close',function(){            res.setHeader('Content-Type', 'audio/x-wav');            res.setHeader("Content-Disposition", "attachment; filename="test.wav");            res.end(result, 'binary');        })

但fs貌似只能读取本地文件

有人 帮我看下吗?

http.get下载

参考下这个吧。

var http = require('http');http.createServer(function (req, res) {  var internalReq = http.request({  // 下载资源 - 这里采用的是nodejs自带的http模块。可以考虑使用[request](https://www.npmjs.org/package/request)模块     hostname: '10.0.2.246',    port: 80,    path: '/monitor/2014-06-14/OUT7010-20140614-1402752806.1466.wav',    method: 'GET'  }, function(internalRes) {    res.setHeader("Content-Disposition", "attachment; filename=test.wav");  // 为了浏览器下载而设置的响应头     res.writeHead(internalRes.statusCode, internalRes.headers);  // 将10.0.2.246给我们的响应头也给我们的客户端吧    internalRes.pipe(res);  // 将10.0.2.246给我们的响应给我们的客户端  });  internalReq.end();  // 发送下载资源的请求}).listen(3000, function () {  // 我们的客户端监听在3000端口  console.log('server bound');});

这些做法在[nodejs官网API页面](http://nodejs.org/api/都能看到。

 res.setHeader("Content-Disposition", "attachment; filename=" + time+'-'+name);

不就是上面这句么。

@ravenwang .get()方法会直接默认播放该音频文件吧

‘Content-type’ : ‘application/octet-stream’

@tulayang你是说用二进制流读取吗?那fs怎么操作?然道还是用

fs.createReadStream(URL);  ```吗?

@huangzh123服务器发给客户端’Content-type’ : 'application/octet-stream’响应头,客户端默认就不会打开了。否则,浏览器会默认“智能”的寻找他自带的解析器来读取流文件。

@JacksonTian 哈哈 最简单并不粗暴的办法

都不用做什么 ,直接给a标签一个download属性就ok了 简单粗暴的方法!!!

也可以用不直接写链接,然后用res.download的方式做。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
node.js中的Http模块
NodeJs导出Excel
nodejs搭建web服务器就是这么简单!
起一个服务,转发请求高德地图瓦片图层(NodeJS)
使用Node.js搭建静态资源服务器
用NodeJS打造你的静态文件服务器
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服