Показать сообщение отдельно
  #1 (permalink)  
Старый 28.07.2022, 14:27
Аспирант
Отправить личное сообщение для win32s Посмотреть профиль Найти все сообщения от win32s
 
Регистрация: 28.09.2019
Сообщений: 38

Как передать BLOB по AJAX?
Есть такой браузерный код (скопипастил с учебника на сайте)
const size_WORD = 2;
const size_DWORD = 4;

function showFile(input) 
{
let pefile = input.files[0];
//console.log(`File name: ${pefile.name}`);
let reader = new FileReader();

reader.readAsArrayBuffer(pefile);

reader.onload = function() 
{
let _e_lfanew = new Uint32Array(reader.result, 60, size_DWORD);
_e_lfanew[0] = 123;

let link = document.createElement('a');
link.download = 'hello.exe';
let blob = new Blob([reader.result], {type: 'application/octet-stream'});
link.href = URL.createObjectURL(blob);
link.click();
URL.revokeObjectURL(link.href);

return;
}


Суть в том, что пользователь загружает бинарный файл, скрипт позволяет править в нем какие-то данные, и получить файл обратно. Но - как мне сохранить этот файл на сервере? Т.е. передать по AJAX куда-то там? Пробовал window.atob , чтобы перевести в base64 - не работает. все не тот формат для аякс.
Ответить с цитированием