Convertir MVC bytearray al archivo javascript descargable

votos
0

Me las arreglé para obtener de Microsoft MVC la bytearray de un archivo, su nombre y su tipo MIME. Consigo que los datos de una llamada Ajax hecho con jQuery y meto en la consola los siguientes datos:

data: {
  stream: [68, 82, 0, 0, 4, 57, 0, 0, 7, 179, 8, 6, 0, 0,…],
  filename: testFile.png,
  mime: image/png
}

Consigo que los datos por un método de controlador MVC que devuelve un byte [] para la corriente y dos cadenas de nombre de archivo y mimo.

Necesito hacer esta js corriente lateral de un archivo para que el usuario descarga. Vi muchos enfoques que implican el objeto Blob, pero todavía no puedo obtener un archivo correcto. Consigo un archivo más grande, por ejemplo, una imagen PNG para la versión descargada, pero no se puede abrir ya que no es válido. Aquí está mi intento de lograr el objetivo:

[...]
$.ajax({
  url: myUrlToControllerMethod, 
  type: 'POST', 
  data: { fileid: myFileId},
  success: function (data) {
    var a = document.createElement('a');
    var blob = new Blob(data.stream, { type: data.mime });
    console.warn(blob)
    const url = URL.createObjectURL(blob);
    console.info(url)
    a.href = url;
    a.download = data.filename;
    document.body.append(a);
    a.click();
    window.URL.revokeObjectURL(url);
  },
[...]

¿Dónde estoy mal?

Publicado el 13/02/2020 a las 23:54
fuente por usuario
En otros idiomas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more