给input type=file 添加一个进度条
时间: 2024-06-10 09:07:54 浏览: 111
c#读取文本文件添加进度条
可以使用 JavaScript 代码来实现给 input type=file 添加进度条。具体步骤为:
1. 给 input 元素绑定 onchange 事件,当用户选择文件时,触发该事件。
2. 在 onchange 事件处理程序中,获取到用户选择的文件对象,并将其通过 Ajax 或 Fetch API 发送到服务器。
3. 在发送文件的过程中,利用 XMLHttpRequest 对象的 onprogress 事件来实现进度条。
4. 根据 onprogress 事件中提供的上传进度信息(比如已上传的字节数和总字节数),计算出当前的上传进度百分比,并将其更新到进度条中。
示例代码:
```
<input type="file" id="myFileInput">
<script>
const progressBar = document.createElement('progress');
progressBar.max = 100;
document.body.appendChild(progressBar);
const fileInput = document.getElementById('myFileInput');
fileInput.addEventListener('change', (event) => {
const file = event.target.files[0];
const xhr = new XMLHttpRequest();
xhr.upload.addEventListener('progress', (event) => {
const progress = (event.loaded / event.total) * 100;
progressBar.value = progress;
});
xhr.open('POST', '/upload');
xhr.send(file);
});
</script>
```
阅读全文