多文件上传时如何限制总文件数量?
我用 做多文件上传,但想限制用户最多只能选5个文件,试了在 change 事件里判断 files.length,可一旦选超了就直接没反应,用户也不知道为啥。
有没有办法在用户选择后自动截断到前5个,或者弹个提示?现在代码是这样:
document.getElementById('fileInput').addEventListener('change', (e) => {
if (e.target.files.length > 5) {
alert('最多只能上传5个文件!');
// 这里怎么清空或截断?直接 e.target.value = '' 会丢失所有文件
}
});
我的做法是用 DataTransfer 来重建 FileList,保留前5个文件:
这样用户选10个文件,自动截成5个,不需要重新选择,体验好很多。
如果你想弹提示让用户自己重新选,那就直接清空:
但这样用户得重新操作一遍,截断的方式更友好,看你需求选吧。
想保留前5个的话用 slice: