47 lines
1.7 KiB
JavaScript
47 lines
1.7 KiB
JavaScript
/**
|
|
* Функция загрузки файлов через 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)
|
|
|
|
}
|
|
};
|
|
|
|
} |