Мне удалось получить от 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);
},
[...]
Где я ошибаюсь?