如何使用java脚本保存/下载mp3 DataURL对象
How to Save/Download a mp3 DataURL object using java script?
允许用户从本地文件系统中选择一个mp3
文件,然后允许下载相同的文件。这是为了学习。
<script type="text/javascript">
window.onload = function() {
document.querySelector('#musicFile').addEventListener('change', function(e){
var file = e.target.files[0];
console.log(e, file);
if(file.type.match('audio.*')) { // if its an audio file
var fReader = new FileReader();
fReader.onload = function(ev) { //onload event
var dataUrl = ev.target.result;
var downloadCon = document.querySelector('#download')
downloadCon.href = dataUrl;
};
fReader.readAsDataURL(file); //start reading the file
}
});
}
</script>
HTML正文:
<body>
<div class="controls">
<input type="file" id="musicFile">
<a id='download'href='#' download='music.mp3' class='downloadLink'>
Download File
</a>
</div>
</body>
当我点击Download File
时,什么都没有发生。你能告诉我我做错了什么吗?
您不需要使用FileReader来完成此操作。简单地说,您需要创建一个URLObject并使a标记指向它。该代码(在Chrome和Firefox for Linux下测试):
<script type="text/javascript">
window.onload = function() {
document.querySelector('#musicFile').addEventListener('change', function(e){
var file = e.target.files[0];
console.log(e, file);
if(file.type.match('audio.*')) { // if its an audio file
document.getElementById( 'download' ).href = URL.createObjectURL(file);
}
});
}
</script>
更具体地说,我在你的代码中做了什么-我删除了所有的FileReader代码并添加了
document.getElementById( 'download' ).href = URL.createObjectURL(file);
的位置。我没有碰你的HTML。
希望对你有帮助。
相关文章:
- 如何在生成下载文件时显示加载动画
- 直接下载文件,而不是从window.open(url)
- 如何使用javascript或html下载PDF格式的填写表单
- Javascript运行php文件,然后下载文件
- 在单击href链接的同时下载文件
- 尽管链接成功并已成功下载,但未找到NPM模块
- 多个mp3下载链接到一个zip文件,用于下载javascript或jquery
- 使用Javascript下载.wav或.mp3
- 使用document.location=file_url.mp3触发从JS下载-不正确
- 我的mp3链接被下载,而不是在我的网络播放器上流式传输
- 将 mp3 文件从另一台服务器下载到我的服务器
- 如何支持从所有浏览器下载mp3
- 强制下载 Ajax 成功时的.mp3或.zip文件
- 如何从其他网站下载mp3文件
- 通过xmlhttprequest下载mp3文件,并将其保存为文件,以便以后上传
- 从远程下载Mp3文件.Node js
- 如何使用java脚本保存/下载mp3 DataURL对象
- 使用chrome扩展中的html5 Blob下载mp3文件
- 防止MP3播放并开始下载
- 是二进制文件(pdf, word, excel, ppt, mp3,..)下载可能使用XHR或fetch