Internet Explorer保存或打开blob会导致wav文件不完整

时间:2015-03-02 14:26:50

标签: javascript internet-explorer wav data-uri

我有一个base64编码的.wav文件。当我尝试在IE11中下载文件时,下载似乎是成功的,但事实并非如此。我可以听到前半秒左右但是它会停止。

在其他浏览器中,下载的文件为78KB,但在IE浏览器中为3.73KB。

我在这里的某个地方错过了一步吗?如果需要,我可以提供base64编码文件。

编辑:加上link到base64编码的.wav文件

download: function(data, filename){
    var binary = atob(data);
    var array = [];
    for(var i = 0; i < binary.length; i++) {
        array.push(binary.charCodeAt(i));
    }

    var blob = new Blob([new Uint8Array(array)], { type: 'audio/wav' });

    if (typeof window.navigator.msSaveBlob !== 'undefined') {
        window.navigator.msSaveBlob(blob, filename); 
    }else {
        var URL = window.URL || window.webkitURL;
        var downloadUrl = URL.createObjectURL(blob);

        if (filename) {
            // use HTML5 a[download] attribute to specify filename
            var a = document.createElement("a");
            // safari doesn't support this yet
            if (typeof a.download === 'undefined') {
                window.location = downloadUrl;
            } else {
                a.href = downloadUrl;
                a.download = filename;
                document.body.appendChild(a);
                a.click();
            }
        } else {
            window.location = downloadUrl;
        }

        setTimeout(function () { URL.revokeObjectURL(downloadUrl); }, 100);
    }

}

0 个答案:

没有答案