Heim >Web-Frontend >js-Tutorial >Wie lade ich Dateien mit JavaScript hoch und verfolge ihren Fortschritt?

Wie lade ich Dateien mit JavaScript hoch und verfolge ihren Fortschritt?

Linda Hamilton
Linda HamiltonOriginal
2024-11-10 04:38:02978Durchsuche

How to Upload Files with JavaScript and Track Their Progress?

Dateien mit JavaScript hochladen

Um eine über ein Eingabeelement ausgewählte Datei hochzuladen, können Sie das FormData-Objekt verwenden. So geht's:

1. Erstellen Sie ein FormData-Objekt:

let formData = new FormData();

2. Hängen Sie die Datei an die FormData an:

let photo = document.getElementById("image-file").files[0];
formData.append("photo", photo);

3. Senden Sie die Daten an den Server:

Mit der Abruf-API können Sie die FormData an die angegebene URL senden:

fetch('/upload/image', {method: "POST", body: formData});

Überwachen des Upload-Fortschritts

Um den Upload-Fortschritt zu überwachen, können Sie addEventListener() von EventTarget verwenden. Methode:

let progressBar = document.getElementById("progress-bar");

formData.addEventListener("progress", (event) => {
    if (event.lengthComputable) {
        let percentComplete = Math.round((event.loaded / event.total) * 100);
        progressBar.style.width = percentComplete + "%";
    }
});

Vollständiges Codebeispiel

Kombinieren des Datei-Uploads und der Fortschrittsverfolgung in einem einzigen Beispiel:

let formData = new FormData();
let photo = document.getElementById("image-file").files[0];
formData.append("photo", photo);

let progressBar = document.getElementById("progress-bar");

fetch('/upload/image', {method: "POST", body: formData})
.then((response) => {
    console.log(response);  // Handle server response
})
.catch((error) => {
    console.error(error);  // Handle upload failure
});

formData.addEventListener("progress", (event) => {
    if (event.lengthComputable) {
        let percentComplete = Math.round((event.loaded / event.total) * 100);
        progressBar.style.width = percentComplete + "%";
    }
});

Dieser Code wird Erstellen Sie eine POST-Anfrage an die URL „/upload/image“, senden Sie die Dateidaten und zeigen Sie den Upload-Fortschritt mithilfe eines Fortschrittsbalkens an.

Das obige ist der detaillierte Inhalt vonWie lade ich Dateien mit JavaScript hoch und verfolge ihren Fortschritt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn