首頁 > web前端 > js教程 > 如何使用 JavaScript 上傳檔案並追蹤其進度?

如何使用 JavaScript 上傳檔案並追蹤其進度?

Linda Hamilton
發布: 2024-11-10 04:38:02
原創
976 人瀏覽過

How to Upload Files with JavaScript and Track Their Progress?

使用 JavaScript 上傳文件

要上傳輸入元素選擇的文件,您可以使用 FormData 物件。方法如下:

1.建立FormData 物件:

let formData = new FormData();
登入後複製

2.將檔案附加到FormData:

let photo = document.getElementById("image-file").files[0];
formData.append("photo", photo);
登入後複製
2.將檔案附加到FormData:

2.將檔案附加到FormData:

fetch('/upload/image', {method: "POST", body: formData});
登入後複製

3.傳送資料到伺服器:

使用fetch API,可以將FormData 傳送到指定的URL:

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 + "%";
    }
});
登入後複製

監聽上傳進度

要監控上傳進度,可以使用EventTarget的addEventListener()方法:

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 + "%";
    }
});
登入後複製

完整程式碼範例完整程式碼範例將檔案上傳和進度追蹤合併到一個範例中:此程式碼將建立一個到「/upload/image」 URL 的POST 請求,發送文件數據,並使用進度顯示上傳進度酒吧。

以上是如何使用 JavaScript 上傳檔案並追蹤其進度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板