Как передать 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 - не работает. все не тот формат для аякс. |
Это вы не на сервер передаете, а у себя на компе сохраняете.
На сервер отправить fetch('server.url', { method: 'POST', body: myBlob }); |
voraa, да, спасибо, это оно!
осталось еще переделать это в multipart-form data. а как вообще fetch отправляет, как ajax или это "обычный" post запрос? |
Цитата:
Вообще посмотрите https://developer.mozilla.org/ru/doc...PI/Using_Fetch |
Часовой пояс GMT +3, время: 12:47. |