Tengo una cadena binaria creado con FileReader.readAsBinaryString(blob).

Quiero crear una nota con los datos binarios representados en esta cadena binaria.

1 Comentario

  1. 12

    Es la nota que has utilizado no disponible para el uso más?

    ¿Tiene usted el uso de readAsBinaryString? Se puede utilizar readAsArrayBuffer lugar. Con una matriz de amortiguamiento sería mucho más fácil recrear el blob.

    Si no puede volver a construir el blob en bicicleta a través de la cadena y la construcción de una matriz de bytes, a continuación, crear una nota de ella.

    JS:

    $('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]);
        
     
    });

    HTML:

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <input type="file">

    • Sí, que trabajó para mí. He editado tu respuesta con el código que trabajó para mí. Una diferencia de mi pregunta original es que en este caso, binaryString vino de un archivo mediante la node.js método de fs.readFileSync(ruta, «binario»).
    • Esto funcionó muy bien para mí! Yo sólo tenía que cambiar una cosa – no podía usar el Uint8Array directamente en el Blob constructor, pero tuvo que pasar de nuevo Blob([matriz.buffer]) el lugar, de lo contrario el contenido de la nota, fue sólo el serializado Uint8Array.

Dejar respuesta

Please enter your comment!
Please enter your name here