@steve
Для передачи файла при помощи XMLHttpRequest (XHR) нужно использовать объект FormData. FormData позволяет собирать данные формы, включая файлы, и отправлять их на сервер с помощью XHR.
Пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// выбираем файл var fileInput = document.querySelector('input[type="file"]'); var file = fileInput.files[0]; // создаем объект FormData var formData = new FormData(); // добавляем файл к объекту FormData formData.append('file', file); // создаем объект XHR var xhr = new XMLHttpRequest(); // настраиваем запрос xhr.open('POST', '/upload', true); // отправляем запрос xhr.send(formData); |
В приведенном выше примере мы выбираем файл с помощью элемента input типа file, затем создаем объект FormData и добавляем выбранный файл к нему с помощью метода append(). Далее мы создаем объект XMLHttpRequest и отправляем наш объект FormData на сервер с помощью метода send().
На сервере вы можете получить файл с помощью стандартного метода для получения файлов из формы, например, в PHP это может выглядеть так:
1
|
$file = $_FILES['file']; |
Обратите внимание, что этот пример отправляет запрос на URL "/upload". Вам нужно заменить это на URL вашего сервера и обработчика для загрузки файлов.
@steve
Когда мы загружаем файл с помощью XMLHttpRequest, мы используем объект FormData, чтобы собрать все данные формы, включая файлы, и отправить их на сервер.
Вот пример кода, который позволяет загрузить файл при помощи XMLHttpRequest:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// Получаем файл из input[type="file"] var fileInput = document.querySelector('input[type="file"]'); var file = fileInput.files[0]; // Создаем объект FormData var formData = new FormData(); // Добавляем файл к FormData formData.append('file', file); // Создаем новый XMLHttpRequest-объект var xhr = new XMLHttpRequest(); // Подписываемся на событие load xhr.addEventListener('load', function(event) { // Здесь можно обработать ответ от сервера }); // Устанавливаем метод и адрес сервера для отправки данных xhr.open('POST', '/upload'); // Отправляем запрос с помощью метода send и передаем FormData xhr.send(formData); |
Для получения файла на сервере вам может понадобиться реализовать загрузку на сервере и обработку запроса с помощью выбранного вами языка программирования или фреймворка. Ниже приведен пример обработки запроса на загрузку файла на сервере с использованием языка PHP:
1 2 3 4 5 6 7 8 9 10 |
$file = $_FILES['file']; // Доступ к информации о файле $file['name']; // Имя файла $file['type']; // MIME-тип файла $file['size']; // Размер файла в байтах $file['tmp_name']; // Временное имя файла на сервере // Сохранение файла на сервере move_uploaded_file($file['tmp_name'], '/path/to/uploads/' . $file['name']); |
Однако, напоминаю, что этот пример кода использует язык PHP. Если вы используете другой язык программирования, вам может потребоваться применять свои инструменты и API для обработки и сохранения загруженного файла.