File "script.js"

Full Path: /home/analogde/www/Torrent/02/script.js
File size: 3.42 KB
MIME-type: text/plain
Charset: utf-8

document.getElementById('fileInput').addEventListener('change', handleFileSelect);

 

function handleFileSelect(event) {

    const fileList = document.getElementById('fileList');

    fileList.innerHTML = ''; // Clear previous files

 

    const files = event.target.files;

    for (let i = 0; i < files.length; i++) {

        const file = files[i];

        const listItem = document.createElement('div');

        listItem.classList.add('d-flex', 'justify-content-between', 'align-items-center', 'mb-2');

        listItem.innerHTML = `

            <span>${file.name}</span>

            <button type="button" class="btn btn-danger btn-sm" onclick="removeFile(this, '${file.name}')">Supprimer</button>

        `;

        fileList.appendChild(listItem);

    }

}

 

function removeFile(button, fileName) {

    const fileList = document.getElementById('fileList');

    const listItem = button.parentElement;

    fileList.removeChild(listItem);

 

    // Remove the file from the FileList (not directly possible, so we need to filter it out)

    const fileInput = document.getElementById('fileInput');

    const dt = new DataTransfer();

    const files = Array.from(fileInput.files).filter(file => file.name !== fileName);

    files.forEach(file => dt.items.add(file));

    fileInput.files = dt.files;

}

 

function submitFiles() {

    const fileInput = document.getElementById('fileInput');

    const files = fileInput.files;

 

    if (files.length === 0) {

        alert('Veuillez sélectionner des fichiers.');

        return;

    }

 

    const formData = new FormData();

    for (let i = 0; i < files.length; i++) {

        formData.append('files[]', files[i]);

    }

 

    const xhr = new XMLHttpRequest();

    xhr.open('POST', 'ia_upload.php', true);

 

    let startTime = new Date().getTime();

    let lastLoaded = 0;

 

    xhr.upload.onprogress = function (event) {

        if (event.lengthComputable) {

            const percentComplete = (event.loaded / event.total) * 100;

            const progressBar = document.getElementById('progress');

            progressBar.style.width = percentComplete + '%';

            progressBar.innerHTML = percentComplete.toFixed(2) + '%';

 

            lastLoaded = event.loaded;

        }

    };

 

    const updateProgressInfo = setInterval(function () {

        const elapsedTime = (new Date().getTime() - startTime) / 1000;

        const speed = (lastLoaded / elapsedTime) / 1024; // kbps

        const remainingTime = (xhr.upload.total - lastLoaded) / (lastLoaded / elapsedTime);

 

        const progressInfo = document.getElementById('progressInfo');

        progressInfo.innerHTML = `

            <p>Vitesse de transfert: ${speed.toFixed(2)} kbps</p>

            <p>Temps écoulé: ${elapsedTime.toFixed(2)} secondes</p>

            <p>Temps restant: ${remainingTime.toFixed(2)} secondes</p>

            <p>Temps estimé pour 100%: ${(xhr.upload.total / speed / 1024).toFixed(2)} secondes</p>

        `;

    }, 1000);

 

    xhr.onload = function () {

        clearInterval(updateProgressInfo);

        if (xhr.status === 200) {

            alert('Fichiers envoyés avec succès.');

        } else {

            alert('Erreur lors de l\'envoi des fichiers.');

        }

    };

 

    xhr.send(formData);

}