Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Blob from javascript binary string

I have a binary string created with FileReader.readAsBinaryString(blob).

I want to create a Blob with the binary data represented in this binary string.

like image 345
Will Hardwick-Smith Avatar asked Jan 07 '15 01:01

Will Hardwick-Smith


1 Answers

Is the blob that you used not available for use anymore?
Do you have to use readAsBinaryString? Can you use readAsArrayBuffer instead. With an array buffer it would be much easier to recreate the blob.

If not you could build back the blob by cycling through the string and building a byte array then creating a blob from it.

$('input').change(function(){
    var frb = new FileReader();
    frb.onload = function(){
        var i, l, d, array;
        d = this.result;
        l = d.length;
        array = new Uint8Array(l);
        for (var i = 0; i < l; i++){
            array[i] = d.charCodeAt(i);
        }
        var b = new Blob([array], {type: 'application/octet-stream'});
        window.location.href = URL.createObjectURL(b);
    };
    frb.readAsBinaryString(this.files[0]);
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="file">
like image 177
Musa Avatar answered Oct 20 '22 01:10

Musa