Добавить js/ajax/upload.js

Первоначальная функция. Работает, но требует доработки
This commit is contained in:
2025-12-08 16:52:36 +00:00
parent 0e6d25807c
commit 3ea8e50cd4

47
js/ajax/upload.js Normal file
View File

@@ -0,0 +1,47 @@
/**
* Функция загрузки файлов через AJAX
*
*/
function selectFiles(e) {
var formData = new FormData();
const files = e.target.files; // получаем все выбранные файлы
// Перебираем все выбранные файлы
for (let i = 0; i < files.length; i++) {
const file = files[i]; // Получаем файл
formData.append("file_"+i,file);
formData.append("name_"+i, e.target.dataset.name); //POST
}
var xhr = new XMLHttpRequest();
xhr.open("POST", "upload.php");
xhr.send(formData);
xhr.onerror = function() { // происходит, только когда запрос совсем не получилось выполнить
alert('Ошибка соединения');
};
let output = "";
xhr.onload = function() {
if (xhr.status != 200) { // анализируем HTTP-статус ответа, если статус не 200, то произошла ошибка
alert('Ошибка ${xhr.status}: ${xhr.statusText}'); // Например, 404: Not Found
} else { // если всё прошло гладко, выводим результат
const data = JSON.parse(xhr.responseText);
for (let x=0; x < data.length; ++x){
console.log(data[x])
output += "<li>" +data[x]+"</li>";
}
document.getElementById("list").style.display="block";
document.getElementById("list").innerHTML = "<ul><p>Перемещенные файлы: </p>" + output + "</ul>";
setTimeout(() => {
document.getElementById("list").innerHTML="";
document.getElementById("list").style.display="none";
}, 3000)
}
};
}