programadores para extension crear complementos javascript firefox-addon firefox-addon-restartless

javascript - extension - Convertir la URL en un archivo o Blob para FileReader.readAsDataURL



crear extension firefox (3)

  1. Puede crear instancias de File simplemente especificando una ruta cuando su código tiene el privilegio de Chrome:

    new File("/path/to/file");

    File es una subclase de Blob , por lo que todas las instancias de File también son Blob s válidas. Tenga en cuenta que esto requiere una ruta de plataforma y no una URL de archivo .

  2. Sí, FileReader está disponible para los complementos.

File y FileReader están disponibles en todas las window s. Si desea usarlos en un ámbito sin ventana (como bootstrap.js o un módulo de código), puede usar nsIDOMFile / nsIDOMFileReader .

Referencia: FileReader.readAsDataURL

Teniendo en cuenta el siguiente ejemplo:

function previewFile(file) { var reader = new FileReader(); reader.onloadend = function () { console.log(reader.result); } reader.readAsDataURL(file); }

Afirma:

instanceOfFileReader.readAsDataURL (blob);

blob: el blob o el archivo desde el que se lee.

  1. ¿Cómo se puede pasar una URL local de archivo como: ''file:///C:/path-to/root.png'' a readAsDataURL()

  2. ¿Está FileReader() disponible en un FileReader() Firefox?


Intenta esto. Aprendí esto de @nmaier cuando estaba dando vueltas con la conversión a ico: Bueno, realmente no entiendo qué es el buffer de matriz, pero hace lo que necesitamos:

function previewFile(file) { var reader = new FileReader(); reader.onloadend = function () { console.log(reader.result); //this is an ArrayBuffer } reader.readAsArrayBuffer(file); }

observe cómo acabo de cambiar su readAsDataURL a readAsArrayBuffer .

Aquí está el ejemplo que me dio @nmaier: https://.com/a/24253997/1828637

tiene un violín

Si quiere tomar esto y hacer un archivo con él, creo que usaría file-output-stream en onloadend


Para convertir una URL en un Blob para FileReader.readAsDataURL () haga esto:

var request = new XMLHttpRequest(); request.open(''GET'', MY_URL, true); request.responseType = ''blob''; request.onload = function() { var reader = new FileReader(); reader.readAsDataURL(request.response); reader.onload = function(e){ console.log(''DataURL:'', e.target.result); }; }; request.send();