首页  >  文章  >  web前端  >  如何使用 JavaScript 上传文件并跟踪其进度?

如何使用 JavaScript 上传文件并跟踪其进度?

Linda Hamilton
Linda Hamilton原创
2024-11-10 04:38:02937浏览

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);

3.发送数据到服务器:

使用 fetch API,可以将 FormData 发送到指定的 URL:

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

监听上传进度

要监控上传进度,可以使用EventTarget的addEventListener()方法:

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 + "%";
    }
});

完整代码示例

将文件上传和进度跟踪合并到一个示例中:

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn