在前端开发中,使用 JavaScript 实现文件上传通常涉及到 HTML 的 <input type="file">
元素结合 JavaScript 的 FormData
对象和 XMLHttpRequest
或 fetch
API 来完成。
基础概念:
优势:
应用场景:
示例代码:
HTML:
<input type="file" id="fileInput">
<button onclick="uploadFile()">上传</button>
JavaScript:
function uploadFile() {
const fileInput = document.getElementById('fileInput');
const file = fileInput.files[0];
if (!file) {
alert('请选择一个文件');
return;
}
const formData = new FormData();
formData.append('file', file);
fetch('/upload', { // 假设后端有一个/upload的处理接口
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => {
console.log('上传成功:', data);
})
.catch((error) => {
console.error('上传失败:', error);
});
}
常见问题及解决方法:
XMLHttpRequest
可以更容易地获取上传进度,而 fetch
API 原生不支持进度事件。如果需要显示上传进度,可以考虑使用 XMLHttpRequest
或第三方库。领取专属 10元无门槛券
手把手带您无忧上云