要实现全选图片上传的功能,你需要掌握以下基础概念:
首先,创建一个简单的HTML表单,包含多个文件输入和一个全选按钮。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>图片上传</title>
</head>
<body>
<input type="file" id="fileInput" multiple>
<button id="selectAll">全选</button>
<button id="uploadBtn">上传</button>
<div id="preview"></div>
<script src="script.js"></script>
</body>
</html>
接下来,编写JavaScript代码来处理全选功能和上传功能。
document.getElementById('selectAll').addEventListener('click', function() {
const fileInput = document.getElementById('fileInput');
fileInput.click(); // 模拟点击文件输入框
});
document.getElementById('fileInput').addEventListener('change', function(event) {
const preview = document.getElementById('preview');
preview.innerHTML = ''; // 清空预览区域
for (let i = 0; i < event.target.files.length; i++) {
const file = event.target.files[i];
const reader = new FileReader();
reader.onload = function(e) {
const img = document.createElement('img');
img.src = e.target.result;
img.style.width = '100px';
img.style.height = '100px';
preview.appendChild(img);
};
reader.readAsDataURL(file);
}
});
document.getElementById('uploadBtn').addEventListener('click', function() {
const fileInput = document.getElementById('fileInput');
const files = fileInput.files;
if (files.length === 0) {
alert('请选择文件');
return;
}
const formData = new FormData();
for (let i = 0; i < files.length; i++) {
formData.append('files[]', files[i]);
}
fetch('/upload', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => {
console.log('上传成功:', data);
})
.catch(error => {
console.error('上传失败:', error);
});
});
XMLHttpRequest
的upload.onprogress
事件来显示上传进度条。通过以上步骤和解决方案,你可以实现一个功能完善的全选图片上传功能。
领取专属 10元无门槛券
手把手带您无忧上云