原生JS实现文件上传和监视上传进度(实现进度条)

本文介绍了如何使用原生JavaScript实现文件上传并实时监控上传进度,通过MDN的FormData、XMLHttpRequest相关知识,结合FileList接口,创建了一个简单的前端上传示例,并给出了前端HTML和后端Node.js的代码片段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现结果

在这里插入图片描述

小demo地址:https://gitee.com/huangxx678/fileuploadbar.git

立个Flag:等我好好学完后端再重新写个完整的 ^ _ ^

先验知识点

MDN:FormData
FormData 接口可以把表单数据构造成键值对,然后通过 XMLHttpRequest.send() 发送。

MDN:XMLHttpRequest
progress 事件,监测传输进度,e.lengthComputable 表示当前传输文件的长度是否可知,e.loaded 表示已经传输的字节数,e.total 表示总字节数,以此计算当前进度条长度

MDN:FileList
input 标签的 type 属性为 file 时,可以通过 inputElement.files[0] 获取上传的一个文件

代码

前端 index.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div class="center" style="width:404px;margin:100px auto;">
        <div id="file" style="
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值