首页新闻找找看学习计划

从服务器下载音频文件文件

0
悬赏园豆:200 [已解决问题] 解决于 2019-10-14 13:56

这是vue下载文件写的部分代码

<script>
                                this.$axios({
                                    method: 'get',
                                    url: row.src  //音频服务器地址
                                }).then(response => {
                                    this.$message({
                                        type: 'success',
                                        message: '正在下载中请稍等',
                                        duration: 1000,
                                    });
                                    console.log(response)
                                    const content = response.data
                                    const blob = new Blob([content],{type:'audio/mpeg'});
                                    const href = URL.createObjectURL(blob);
                                    const a = document.createElement('a');
                                    a.setAttribute('href', href);
                                    a.setAttribute('download', row.title);
                                    a.click();
                                    URL.revokeObjectURL(href);
                                })

</script>

能下载下来音频
可是音频无法正常打开,服务器上的音频文件都是好的并没有损坏,请问下我的代码哪里出错了

小小咸鱼YwY的主页 小小咸鱼YwY | 小虾三级 | 园豆:655
提问于:2019-10-14 12:12
< >
分享
最佳答案
0

很奇怪,你为什么要用 ajax 下载二进制后下载,不直接
const a = document.createElement('a');

a.setAttribute('href', "ajax的地址");
a.setAttribute('download', "xxx.mp3");
a.click();

收获园豆:200
muamaker | 小虾三级 |园豆:630 | 2019-10-14 13:37

你这样只会出现这样的效果

我不想出现这样的效果,我思路这样的请求音频的链接,再把返回值转换成二进制,再根据他二进制对象生成新链接,再创建a标签,点击a标签

小小咸鱼YwY | 园豆:655 (小虾三级) | 2019-10-14 13:40

@小小咸鱼YwY: 点击下载后端处理content-type 是最简单的。
另外,如果你希望获取二进制,axios 应该多传一个参数 responseType:
this.axios.get(url,{
responseType: 'blob'
}).then(res) {
var src = window.URL.createObjectURL(res.data);
//src 就是一个可以显示图片的相对路径。因为window.URL.crateObjectURL(blob)已经进行了转换
}

muamaker | 园豆:630 (小虾三级) | 2019-10-14 13:49

@muamaker: 我的天,我脑子短路了居然忘了再请求的时候就让他给类型,我还想返回值进行解析成二进制是解析错误,谢谢,音频视频文件都要进行这样的转换的,图片文字才会直接下载

小小咸鱼YwY | 园豆:655 (小虾三级) | 2019-10-14 13:56
其他回答(1)
-3

piupiupiu~
有C++吗?

HEOI-动动 | 园豆:214 (菜鸟二级) | 2019-10-14 12:16

这是前端js代码,不是后端

支持(0) 反对(0) 小小咸鱼YwY | 园豆:655 (小虾三级) | 2019-10-14 12:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册