Konvertieren MVC bytearray zu dowloadable JavaScript-Datei

stimmen
0

Ich schaffte es von Microsoft MVC die bytearray einer Datei, seinen Namen und MIME-Typ zu erhalten. Ich erhalte, dass die Daten von einem Anruf Ajax gemacht mit jQuery und nutzen Sie die folgenden Daten in der Konsole:

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

Ich, dass Daten, die von einer MVC-Controller-Methode, die ein byte [] für den Stream und zwei Strings für Dateinamen und Mime zurückgibt.

Ich brauche diesen Strom js Seite eine Datei für den Benutzer zum Download zu machen. Ich sah das Blob-Objekt viele Ansätze beteiligt, aber dennoch kann ich nicht die richtige Datei. Ich erhalte eine größere Datei, zum Beispiel für ein PNG-Bild, aber die Download-Version kann nicht offen sein, da es nicht gültig ist. Hier ist mein Versuch, das Ziel zu erreichen:

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

Wo bin ich falsch?

Veröffentlicht am 13/02/2020 um 21:54
quelle vom benutzer
In anderen Sprachen...                            

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