always-prog
@always-prog
Я программист. Python, JavaScript, Django.

Как загрузить файл на сервер через форму input?

Привет.
Вот такая задача у меня стоит, загрузить файл на сайт, используя только лишь JavaScript.
Input для файла на сайте выглядит так5f8e7183b8b46458164519.png
Мне нужно загрузить файл .pdf.
Важно, что я не могу использовать другие языки, и сторонние библиотеки, только js.
Спасибо!
  • Вопрос задан
  • 268 просмотров
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
Набросал вам функцию для отправки файла:
function sendFile(file, url) {

  // Создаем форму в конструкторе:
  var formData = new FormData();

  // Добавляем наш файл в форму:
  formData.append('file', file, file.name);

  // Отправляем форму на сервер:

  var xhr = new XMLHttpRequest();
  xhr.open('POST', url);
  
  xhr.onreadystatechange = function() {
    if (xhr.readyState === XMLHttpRequest.DONE) {
      if (xhr.status === 200) {
        alert('Запрос выполнен успешно, ответ сервера: ' + xhr.responseText);
      }
      else {
        alert('При выполнении запроса произошла неизвестная ошибка!');
      }
    }
  }
  
  xhr.send(formData);

}

P. S. Забыл дописать. Получить файл с поля можно вот так:
input_file = document.querySelector('input[type="file"]').files[0];

Ну, а далее тупо вызывайте написанную мной функцию, где первым аргументом передаёте полученный файл, а вторым адрес куда вам нужно отправить этот файл:
sendFile(input_file, 'https://адрес_куда_отправить');
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы