Convertir MVC bytearray au fichier javascript téléchargables

voix
0

J'ai réussi à obtenir de Microsoft MVC le bytearray d'un fichier, son nom et son type MIME. Je reçois que les données d'un appel Ajax fait avec jQuery et obtenir dans la console les données suivantes:

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

J'obtenir ces données par un procédé de contrôleur MVC qui renvoie un byte [] pour le courant et deux chaînes de nom de fichier et le mime.

Je dois faire partie de ce courant js un fichier pour l'utilisateur à télécharger. J'ai vu de nombreuses approches impliquant l'objet Blob, mais je ne peux pas obtenir un fichier correct. Je reçois un fichier plus volumineux, par exemple, pour une image .png, mais la version téléchargée ne peut être ouvert car il est pas valide. Voici mon essai pour atteindre l'objectif:

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

Où suis-je tort?

Créé 13/02/2020 à 23:54
source utilisateur
Dans d'autres langues...                            

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