您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# HTML如何显示文件上传进度
## 前言
在现代Web应用中,文件上传功能十分常见。但大文件上传时若没有进度提示,用户体验会大打折扣。本文将介绍如何使用HTML5和JavaScript实现文件上传进度显示。
## 核心API:XMLHttpRequest与FormData
```html
<input type="file" id="fileInput">
<button onclick="uploadFile()">上传</button>
<div id="progressBar" style="width:100%;height:20px;background:#eee"></div>
<div id="status"></div>
<script>
function uploadFile() {
const fileInput = document.getElementById('fileInput');
const file = fileInput.files[0];
const formData = new FormData();
formData.append('file', file);
const xhr = new XMLHttpRequest();
// 进度事件监听
xhr.upload.onprogress = function(e) {
if (e.lengthComputable) {
const percent = (e.loaded / e.total * 100).toFixed(2);
document.getElementById('progressBar').style.width = percent + '%';
document.getElementById('status').innerHTML = percent + '% 已上传';
}
};
xhr.open('POST', '/upload', true);
xhr.send(formData);
}
</script>
<input type="file">
获取用户选择的文件xhr.upload.onprogress
事件监听上传进度e.loaded
和e.total
计算进度百分比async function uploadWithProgress(file) {
const response = await fetch('/upload', {
method: 'POST',
body: file,
headers: { 'Content-Type': file.type }
});
const reader = response.body.getReader();
let received = 0;
while(true) {
const {done, value} = await reader.read();
if(done) break;
received += value.length;
console.log(`Received ${received} bytes`);
}
}
通过合理利用现代浏览器API,开发者可以轻松实现专业的文件上传进度显示功能,显著提升用户体验。实际开发中可根据需求选择XMLHttpRequest或Fetch API方案。 “`
(全文约560字)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。