Преобразование MVC ByteArray в dowloadable файл яваскрипт

голоса
0

Мне удалось получить от Microsoft MVC ByteArray, файла, его имя и MimeType. Я получаю, что данные из вызова Ajax сделал с JQuery и получить в консоли следующие данные:

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

Я понимаю, что данные с помощью метода контроллера MVC, которая возвращает байт [] для потока и двух строк для имени файла и мим.

Мне нужно, чтобы сделать этот поток JS стороны файла для пользователя для загрузки. Я видел множество подходов, связанных с объектом Blob, но до сих пор я не могу получить правильный файл. Я получаю файл большего размера, например, для PNG изображения, но загруженный версия не может быть открыт, так как не является действительным. Вот моя попытка достичь цели:

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

Где я ошибаюсь?

Задан 13/02/2020 в 23:54
источник пользователем
На других языках...                            

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