javascript - extension - Convertir la URL en un archivo o Blob para FileReader.readAsDataURL
crear extension firefox (3)
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 deBlob
, por lo que todas las instancias deFile
también sonBlob
s válidas. Tenga en cuenta que esto requiere una ruta de plataforma y no una URL de archivo .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.
¿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();