Solución:
Puede utilizar el constructor de archivos:
var file = new File([myBlob], "name");
Según la especificación w3, esto agregará los bytes que contiene el blob a los bytes para el nuevo objeto Archivo y creará el archivo con el nombre especificado http://www.w3.org/TR/FileAPI/#dfn-file
Esta función convierte un Blob
en un File
y funciona muy bien para mí.
JavaScript vainilla
function blobToFile(theBlob, fileName){
//A Blob() is almost a File() - it's just missing the two properties below which we will add
theBlob.lastModifiedDate = new Date();
theBlob.name = fileName;
return theBlob;
}
Mecanografiado (con mecanografía adecuada)
public blobToFile = (theBlob: Blob, fileName:string): File => {
var b: any = theBlob;
//A Blob() is almost a File() - it's just missing the two properties below which we will add
b.lastModifiedDate = new Date();
b.name = fileName;
//Cast to a File() type
return <File>theBlob;
}
Uso
var myBlob = new Blob();
//do stuff here to give the blob some data...
var myFile = blobToFile(myBlob, "my-image.png");
Joshua P. NixonLa respuesta es correcta, pero también tuve que establecer la fecha de última modificación. así que aquí está el código.
var file = new File([blob], "file_name", {lastModified: 1534584790000});
1534584790000 es una marca de tiempo de Unix para “GMT: sábado 18 de agosto de 2018 9:33:10 a. M.“
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)