Если вы хотите получить доступ к данным из javascript, например, через просмотр данных, то вы можете использовать метод Blob.arrayBuffer()
, который вернет разрешение Promise в ArrayBuffer. Поскольку интерфейс File наследуется от Blob , этот метод также доступен непосредственно для объектов File.
document.getElementById('inp').onchange = async function(evt) {
const buf = await this.files[0].arrayBuffer();
console.log( buf.byteLength );
const view = new Uint8Array(buf, 0, 4); // create a view of 4 first bytes
console.log(view);
};
<input type="file" id="inp">
Обратите внимание, что для этого метода может потребоваться полифилл в старых браузерах.
Но если вы sh - просто отправить этот файл в двоичном виде на сервер, затем XHR
и fetch
принимают Blob в качестве тела запроса:
// using XHR
const xhr = new XMLHttpRequest();
xhr.open('POST', url);
xhr.send(input.files[0]);
// using fetch
fetch(url, { method: "POST", body: inp.files[0] } );
// using axios
axios.post(url, inp.files[0]);