Convertire MVC ByteArray di file javascript dowloadable

voti
0

Sono riuscito a ottenere da Microsoft MVC ByteArray di un file, il suo nome e il tipo MIME. Ottengo che i dati da una chiamata Ajax realizzato con jQuery e ottenere in consolle i seguenti dati:

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

Ottengo che i dati con un metodo di controllo MVC che restituisce un byte [] per il flusso e due stringhe per nome del file e mimo.

Ho bisogno di fare questo flusso js lato di un file per l'utente per il download. Ho visto molti approcci che coinvolgono l'oggetto Blob, ma ancora non riesco a ottenere un file corretto. Ho un file di dimensioni maggiori, ad esempio, per un'immagine PNG, ma la versione scaricata non può essere aperta in quanto non è valida. Qui è il mio tentativo di raggiungere l'obiettivo:

[...]
$.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);
  },
[...]

Dove sbaglio?

È pubblicato 13/02/2020 alle 23:54
fonte dall'utente
In altre lingue...                            

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