javascript - extension - Convertir la URL en un archivo o Blob para FileReader.readAsDataURL
crear extension firefox (3)
Puede crear instancias de
Filesimplemente especificando una ruta cuando su código tiene el privilegio de Chrome:new File("/path/to/file");Filees una subclase deBlob, por lo que todas las instancias deFiletambién sonBlobs válidas. Tenga en cuenta que esto requiere una ruta de plataforma y no una URL de archivo .Sí,
FileReaderestá 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.
¿Cómo se puede pasar una URL local de archivo como:
''file:///C:/path-to/root.png''areadAsDataURL()¿Está
FileReader()disponible en unFileReader()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();